动态SQL语句的insert into语法

2025-02-27 06:26:04
推荐回答(2个)
回答1:

你原来错误是
消息 8178,级别 16,状态 1,第 1 行
参数化查询 '( @a int ,@b varchar(80) ,@c int,@d varchar(80))insert into A (c' 需要参数 '@a',但未提供该参数。

declare @newid nvarchar(50)
select @newid=NEWID()
exec sp_executesql N'insert into A (col1,col2,col3,col4) values (@a,@b,@c,@d) ',N' @a int ,@b varchar(80) ,@c int,@d varchar(80)',0,'测试',0,@newid

在Sql Server 2008 R2已经成功插入.

回答2:

你可以写成
exec sp_executesql N'insert into A (col1,col2,col3,col4 ) values (@a,@b,@c,newid()) ',
N' @a int ,@b varchar(80) ,@c int,@d varchar(80)',0,'测试',0