敬业的IT人 >> 数据库 >> SQLServer >> 如何在存储过程中使用变量代替表名

如何在存储过程中使用变量代替表名

敬业的IT人 互联网 佚名 2008-2-28 0:50:25

Q atrie560lcd:
    我想在存储过程中使用变量代替表名,以便对相同格式的不同的表进行数据更改,但我不知道该怎么做。
     create procedure proc1
     as
     declare @tbname varchar(11),@cs int
     update @tbname set zd1=zd1+@cs
    结果显示:第4行有错误,必须声明变量 @tbname
     请问应该怎样写?

A回答:

    将 Update @tbname set zd1=zd1+@cs
    该为:
     update Table1 @tbname set zd1=zd1+@cs
    或 Update Table1 as @tbname set zd1=zd1+@cs (注:table1 为原表名)
    
    peiyan的意见:
    CREATE PROCEDURE
    Find_Dj @table_name varchar(20),@strsql varchar(20)
    
    AS
    
    declare @sql varchar(200)
    
    set @sql='select * from '+@table_name+ ' where '+ @strsql
    execute(@sql)
    
    乐全云的意见:
    create procedure proc1
     as
     declare @tbname varchar(11),@cs int
    declare @SQLSTRING NVARCHAR(4000)
    SET @SQLSTRING=N' update '+@tbname+' set zd1=zd1+'+@cs
    EXEC sp_executesql @SQLSTRING

粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com