我想编写一个存储过程,SQL server
它将insert
记录到数据库中,我想在其中将表名和列名及其值作为参数传递给存储过程。
如果有帮助,我正在使用 asp.net 三层技术。
如果不可能,请告诉我一些替代方案。提前致谢
我想编写一个存储过程,SQL server
它将insert
记录到数据库中,我想在其中将表名和列名及其值作为参数传递给存储过程。
如果有帮助,我正在使用 asp.net 三层技术。
如果不可能,请告诉我一些替代方案。提前致谢
在 NVARCHAR 中动态构建 SQL,并将其传递给存储过程 sp_executesql:
DECLARE @sql NVARCHAR(MAX);
-- build your SQL in the NVARCHAR
EXEC sp_executesql @sql;
这在理论上是可能的,但恐怕这并不是最好的解决方案。
这种方法的问题是您不知道很多参数,例如列名、存在多少列名、它们的类型等。
这意味着您必须将参数作为某些默认类型(例如 nvarchar)传递,然后将此类型转换为可能导致性能和其他问题的特定列类型。
我建议您尝试使用实体框架或其他一些 ORM 工具来为您处理插入。
最好的答案是“不要那样做!”
关系数据库最适合用于建模......关系,并且要做到这一点,您需要对要存储的数据进行限制和设计。这意味着您(或您的 ORM)将知道基础表的外观。
如果您想要一个简单地抛出对象的地方,那么请考虑使用像 MongoDB 这样的 nosql 文档存储。