EXEC和SP_EXECUTESQL的用法
declare @TableName varchar(50)
declare @Sql nvarchar(max)
declare @type int
set @TableName = 'list'
set @type = 100
set @Sql = N'select account from ' + quotename(@TableName) + N' where type = ' + cast(@type as varchar(10))
print(@Sql)
--exec(@Sql)
exec sp_executesql @Sql
--/////////////////////////////////////////////////////////////
declare
@TableName varchar(50),
@sql nvarchar(max),
@type int,
@flag int
set @TableName = 'list'
set @type = 100
set @flag = 1
set @sql = 'select account from ' + quotename(@TableName) + ' where type = @OID and isdelete = @ODD'
exec sp_executesql
@stmt = @sql,
@params = N'@OID AS int ,@ODD AS int',
@OID = @type,
@ODD = @flag
--////////////////////////////////////////////////////////////////////////////
declare
@TableName varchar(50),
@sql nvarchar(max),
@name varchar(18),
@flag varchar(10)
set @flag = '2'
set @TableName = 'Table' + @flag
set @name = 'aaa'
set @sql = 'select top(2) col1 from ' + quotename(@TableName) + ' where name = @name1 '
print(@sql)
exec sp_executesql
@stmt = @sql,
@params = N'@name1 AS varchar(18)',
@name1 = @name
--///////////////////////
declare
@TableName varchar(50),
@sql nvarchar(max),
@name varchar(18),
@flag varchar(10),
@Total int
set @flag = '2'
set @TableName = 'Log' + @flag
set @name = 'bbb'
set @Total = 0
set @sql = 'select @iTotal = count(*) from ' + quotename(@TableName) + ' where name = @name1 '
print(@sql)
exec sp_executesql
@stmt = @sql,
@params = N'@name1 AS varchar(18),@iTotal as int output',
@name1 = @name,
@iTotal = @Total output
select @Total

浙公网安备 33010602011771号