【问题标题】:Single stored procedure for all insert query所有插入查询的单个存储过程
【发布时间】:2019-12-03 07:51:19
【问题描述】:

在编程语言中,我们可以制作类库来重用代码。有什么方法可以编写一个我每次都可以使用的 SQL 存储过程?就像后面的 ASP.NET 代码一样,我将为插入查询传递表名、列数、数据类型和值,然后该过程将动态创建字段并执行。

如果有什么办法,请给我一个适当的指导或解释的例子。

【问题讨论】:

  • 标记任何人,mysqlsql server。他们都是不同的平台。
  • sql server 标记
  • 可能但错误。不幸的是,SQL Server 并不是为这种代码重用而设计的。不要这样做,甚至不要考虑这样做。这不仅会很危险,而且性能很可能很糟糕。
  • 虽然您可能能够一起破解类似的东西,但在 SQL Server 领域这是一个非常糟糕的想法 - 总的来说。 不要这样做!您应该始终遵守单一职责原则 - 一段代码应该做一件事,并且只做一件事 - 这些“全能” " 方法一开始可能听起来不错,但它们往往会演变成可怕的维护噩梦.....
  • 危险,请参阅下面有关 sql 注入的答案,构建动态 SQL 时的一个错误,您会破坏数据库。性能很可能很差,因为 SQL Server 在动态创建时无法像在固定和已知时那样轻松地优化查询。

标签: sql asp.net sql-server webforms


【解决方案1】:

这是一条非常危险的路。搜索 sql injection 以了解原因。

更好的方法是从您的应用程序中调用数据库中的特定存储过程。这将 UI 代码与数据访问代码分开,并且可以将负载分配到更大的应用程序中。

【讨论】:

  • 如果我传递参数,它怎么会那么容易受到 sql 注入的攻击?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-28
  • 2021-07-25
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多