【发布时间】:2012-10-20 22:10:23
【问题描述】:
我正在尝试在 SQL Server 2008 中创建一个存储过程,它可以将数据插入任何表(不是特定于表的)。我创建了一个如下所示的,但是在执行过程期间抛出了一个异常,即
无效的对象名称'dbo.@table'。
存储过程代码:
CREATE PROCEDURE dbo.sp_InsertValues
@table varchar(15)
, @fields varchar(100)
, @values varchar(100)
AS
BEGIN
INSERT INTO [dbo].[@table] (@fields) VALUES (@values)
END
GO
记得我检查了参数表,列和值参数不为空。
【问题讨论】:
-
要做到这一点,你将不得不从你传入的参数中创建动态 sql。
-
要充实 Adam 的评论,请参阅 Execute。
-
这种技术不好,因为它没有充分的理由不使用参数化 SQL。请不要这样做。在决定以这种方式插入数据之前,研究为什么参数化 SQL 很重要。
标签: sql-server sql-server-2008