CREATE PROC DBO.TEST @No varchar(50), @TableName varchar(10) exec('IF EXISTS(SELECT 序号 FROM '+@TableName +' WHERE 序号='''+@No+''') BEGIN SELECT * FROM '+@TableName+' END')
优化一下:CREATE PROC DBO.TEST @No varchar(50), @TableName varchar(10) exec('IF EXISTS(SELECT 1 FROM '+@TableName+' WHERE 序号='''+@No+''') SELECT * FROM '+@TableName)
自己查查EXECUTE和sp_executesql 的帮助
CREATE PROC DBO.TEST @No varchar(50), @TableName varchar(10) as exec('IF EXISTS(SELECT 序号 FROM '+@TableName +' WHERE 序号='''+@No+''') BEGIN SELECT * FROM '+@TableName+' END')
例: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
EXEC ('SELECT * FROM @TableName' )
@No varchar(50),
@TableName varchar(10) exec('IF EXISTS(SELECT 序号 FROM '+@TableName +'
WHERE 序号='''+@No+''')
BEGIN
SELECT * FROM '+@TableName+'
END')
@No varchar(50),
@TableName varchar(10) exec('IF EXISTS(SELECT 1 FROM '+@TableName+'
WHERE 序号='''+@No+''')
SELECT * FROM '+@TableName)
@No varchar(50),
@TableName varchar(10)
as
exec('IF EXISTS(SELECT 序号 FROM '+@TableName +'
WHERE 序号='''+@No+''')
BEGIN
SELECT * FROM '+@TableName+'
END')
declare @retcode SMALLINT
EXEC('SET '+@retcode+'=1')调试通不过?语法上如何改?
@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