动态SQL语句的insert into语法
execsp_executesqlN'insertintoA(col1,col2,col3,col4)values(@a,@b,@c,@d)',N'@aint,@bvar...
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,'测试',像这样就可以用,如果写成
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)' select 0,'测试',0,newid() ,在SQL不报语法错误,但是执行的话会提示@a 没赋值,现在因为需要用到NEWID()函数给一列唯一码赋值,所以赋值语句一定要用SELECT,请问第二条语句怎样改才能正确执行 展开
N' @a int ,@b varchar(80) ,@c int,@d varchar(80)' ,0,'测试',0,'测试',像这样就可以用,如果写成
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)' select 0,'测试',0,newid() ,在SQL不报语法错误,但是执行的话会提示@a 没赋值,现在因为需要用到NEWID()函数给一列唯一码赋值,所以赋值语句一定要用SELECT,请问第二条语句怎样改才能正确执行 展开
2个回答
展开全部
你原来错误是
消息 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已经成功插入.
消息 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已经成功插入.
展开全部
你可以写成
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
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
追问
newid()函数必须select才能用
追答
你是什么版本啊?我05、08测试都没问题,都可以
create table #a(id varchar(64))
exec sp_executesql N'insert into #a (id) values (newid())'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询