IF EXISTS(SELECT 序号 FROM Table1
WHERE 序号=@No)
BEGIN
SELECT * FROM Table1
RETURN (1)
END
现在想用一个变量@TableName varchar(10)
代换Table1。能否做到?
...全文
579打赏收藏
传递表名到存储过程进行操作
如下存储过程: CREATE PROC DBO.TEST @No varchar(50) IF EXISTS(SELECT 序号 FROM Table1 WHERE 序号=@No) BEGIN SELECT * FROM Table1 RETURN (1) END 现在想用一个变量@TableName varchar(10) 代换Table1。能否做到?
Create Procedure GetMaxID
@TableName varchar(100), @ID int output
as
begin
declare @sql nvarchar(1000)
set @sql='select @ID = max(ID) from '+@TableName
exec sp_executesql @sql,N'@id int output',@id output
end
CREATE PROC DBO.TEST
@No varchar(50),
@TableName varchar(10)
as
exec('IF EXISTS(SELECT 序号 FROM '+@TableName +'
WHERE 序号='''+@No+''')
BEGIN
SELECT * FROM '+@TableName+'
END')