请教关于存储过程的小问题!!!(100分)

  • 主题发起人 hycstudio
  • 开始时间
H

hycstudio

Unregistered / Unconfirmed
GUEST, unregistred user!
请教关于存储过程的小问题!!!
我有一个小存储过程,程序如下:
CREATE PROCEDURE COUNT_WSF @PCLASS VARCHAR(10) AS
DECLARE @TblName VARCHAR (20)
BEGIN
SELECT @TblName = 'A058' + @PCLASS
UPDATE @TblName
SET C5804 = 5
END

编译时提示“没有定义@TblName”,是怎么会事? 如果我希望动态传递表名,该怎么处理呢?
请各位大虾指教!
 
表名是不能作为参数的.
先生成一个语句;使用exec(语句)来完成你要的目的吧
 
用sp_executesql,详细情况自己去见Help
 
存储过程中 的 表名 如何才能使用 变量?
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1309467
 
怎么可能????????至少也得 Set:SELECT @TblName = 'A058' + @PCLASS
SET @TblName = 'A058' + @PCLASS

但应该可以这样:
exec('update A058' + @PCLASS+' SET C5804 = 5' )
 
具体实现步骤如下:
declare @strsql varchar(2000)
declare @param varchar(1000)

set @strsql = 'SELECT @TblName = 'A058' + @PCLASS' +
'UPDATE @TblName' +
'SET C5804 = 5'

set @param ='@TblName VARCHAR (20),@PCLASS VARCHAR(10)'

sp_executesql @strsql,@param,@TblName ,@PCLASS
 
谢谢,可以了!
 
顶部