热情软件屋

 

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


编号:QA004332
建立日期: 2001年7月31日 最后修改日期:2003年8月15日
所属类别:

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

回答:

    将 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

此问题由Tanxufeng回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, SQL查询, sql server, sql, query, select

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio