六级考试时间多长:在SQL里,如何用变量代替字段名进行更新???

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 21:26:45
如果用变量可以代替字段名插入的话也可以
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
其中更新的地方不对,请帮我看看

举个最简单的例子,剩下的自己悟吧。

假设你的表名为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)

就可以了

你的意思是SQL语句在设计期字段名是不确定的,用存储过程sp_executesql来执行,具体请参见我的一篇拙文:
http://blog.csdn.net/ashuixu/archive/2005/03/09/315726.aspx

指定SQL语句的时候用 "& &" 就行了嘛。