求教 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 似乎是不认识这个变量
求可以运行的代码。谢谢
展开
 我来答
512578845
2014-03-27 · 超过55用户采纳过TA的回答
知道小有建树答主
回答量:122
采纳率:100%
帮助的人:124万
展开全部
你的@strTemp 是个变量,怎么弄到引号里去了 ,这样是认不到的,你要删除列,然后列又是动态的,你这种情况只能是 构造动态sql

稍微修改哈: declare sql varchar(max);
set sql='alter table 社科书目$ drop column'+@strTemp;
exec(sql); 这样就行了,
declare sql varchar(max); 这个变量 你在前面 申明 也可以,在那个地方申明一样
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式