在SQL里,如何用变量代替字段名进行更新???

如果用变量可以代替字段名插入的话也可以ALTERPROCPROC_INFO@NAME1VARCHAR(50),@ROWS1INT,@NAME2VARCHAR(50),@R... 如果用变量可以代替字段名插入的话也可以
ALTER PROC PROC_INFO
@NAME1 VARCHAR(50),@ROWS1 INT,@NAME2 VARCHAR(50),@ROWS2 INT
AS
IF @NAME1!='XX'AND @NAME1!='TABLEINFO' AND @ROWS2>@ROWS1
BEGIN
DECLARE @T DATETIME
SET @T=GETDATE()
INSERT XX
(时间)
VALUES
(@T)
UPDATE XX
SET @NAME1=@ROWS2-@ROWS1
WHERE 时间=@T
END
其中更新的地方不对,请帮我看看
展开
 我来答
百度网友d2c92c870
2006-03-20 · TA获得超过1456个赞
知道小有建树答主
回答量:401
采纳率:0%
帮助的人:0
展开全部
举个最简单的例子,剩下的自己悟吧。

假设你的表名为Table:

declare @SQL_Text varchar(1000),@txt varchar(50)

set @txt = \'abc\'
set @SQL_Text = \'select * from Table where \'+abc+\'=0\'

exec(@SQL_Text)

以上是存储过程里的写法,在ASP里可以这样的:

ttt=\"abc\"

response.write(rs(ttt))

像你的这种情况,只要把

UPDATE XX
SET @NAME1=@ROWS2-@ROWS1
WHERE 时间=@T

改成:

exec('update XX set'+@name1+'='+@ROWS2+'-'+@ROWS1+' where 时间='+@t)

就可以了
ashuixu
2006-03-20 · TA获得超过421个赞
知道答主
回答量:61
采纳率:0%
帮助的人:0
展开全部
你的意思是SQL语句在设计期字段名是不确定的,用存储过程sp_executesql来执行,具体请参见我的一篇拙文:
http://blog.csdn.net/ashuixu/archive/2005/03/09/315726.aspx
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
raybvb09
2006-03-20 · TA获得超过918个赞
知道小有建树答主
回答量:500
采纳率:0%
帮助的人:0
展开全部
指定SQL语句的时候用 "& &" 就行了嘛。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式