请问各位老师:一个sql程序中为什么插入的是列名,而不是列的内容?
假设:请问当@p=‘u1’@name1='u2'@name2='u3'如何把test表中@p,@name1,@name2所代表的列的内容从test表中导入到一个新的表te...
假设:
请问当@p=‘u1’ @name1='u2' @name2='u3'如何把test表中@p,@name1,@name2所代表的列的内容从test表中导入到一个新的表test6中中,假设三个变量在一个循环中,每次代表的内容都在发生变化
下面语句为什么结果不对呢
insert into #test6(u1,u2,u3) select @p,@name1,@name2 from test
结果是插入变成插入三个变量而不是三个变量内容所代表列的内容? 展开
请问当@p=‘u1’ @name1='u2' @name2='u3'如何把test表中@p,@name1,@name2所代表的列的内容从test表中导入到一个新的表test6中中,假设三个变量在一个循环中,每次代表的内容都在发生变化
下面语句为什么结果不对呢
insert into #test6(u1,u2,u3) select @p,@name1,@name2 from test
结果是插入变成插入三个变量而不是三个变量内容所代表列的内容? 展开
展开全部
你变量赋值给的就是列名 存进去当然就是列名了
declare sqlstr nvarchar(200)
set sqlstr='select '+@p+','+@name1+','+@name2+ 'from test'
insert into #test6(u1,u2,u3) exec (sqlstr)
declare sqlstr nvarchar(200)
set sqlstr='select '+@p+','+@name1+','+@name2+ 'from test'
insert into #test6(u1,u2,u3) exec (sqlstr)
追问
奥,谢谢老师,那如何去改一下,可以test表中@p,@name1,@name2所代表的列的内容从test表中导入到一个新的表test6中中
追答
declare sqlstr nvarchar(200)
set sqlstr='select '+@p+','+@name1+','+@name2+ 'from test'
insert into #test6(u1,u2,u3) exec (sqlstr)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询