求教 SQL语句怎么加变量?
declare@strTempnvarchar(20)declare@iintdeclare@sqlnvarchar(50)set@i=14while@i<254begi...
declare @strTemp nvarchar(20)
declare @i int
declare @sql nvarchar(50)
set @i=14
while @i<254
begin
if @i>99 begin
set @strTemp='F'+str(@i,3)
end
else begin
set @strTemp='F'+str(@i,2)
end
alter table "社科书目$" drop column "@strTemp"
set @i=@i+1
end
以上语句执行出来说找不到strtemp 似乎是不认识这个变量
求可以运行的代码。谢谢 展开
declare @i int
declare @sql nvarchar(50)
set @i=14
while @i<254
begin
if @i>99 begin
set @strTemp='F'+str(@i,3)
end
else begin
set @strTemp='F'+str(@i,2)
end
alter table "社科书目$" drop column "@strTemp"
set @i=@i+1
end
以上语句执行出来说找不到strtemp 似乎是不认识这个变量
求可以运行的代码。谢谢 展开
1个回答
展开全部
你的@strTemp 是个变量,怎么弄到引号里去了 ,这样是认不到的,你要删除列,然后列又是动态的,你这种情况只能是 构造动态sql
稍微修改哈: declare sql varchar(max);
set sql='alter table 社科书目$ drop column'+@strTemp;
exec(sql); 这样就行了,
declare sql varchar(max); 这个变量 你在前面 申明 也可以,在那个地方申明一样
稍微修改哈: declare sql varchar(max);
set sql='alter table 社科书目$ drop column'+@strTemp;
exec(sql); 这样就行了,
declare sql varchar(max); 这个变量 你在前面 申明 也可以,在那个地方申明一样
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询