DECLARE @sql nvarchar(max),
@xxxxx int ,
@Pdate varchar(100)
set @Pdate=1308
set @xxxxx=( select count(id) from [1308] )
--这里正常SET @sql = N'
SET @xxxxx=(select count(id) from '+QUOTENAME(@Pdate) +' )
'
EXEC sp_executesql @sql
PRINT @xxxxx当表名为为动态时出错,后面需要调用@xxxxx ,帮忙看下正确的语句是什么?
@xxxxx int ,
@Pdate varchar(100)
set @Pdate=1308
set @xxxxx=( select count(id) from [1308] )
--这里正常SET @sql = N'SET @xxxxx=(select count(id) from '+QUOTENAME(@Pdate) +')'
EXEC sp_executesql @sql ,N'@xxxxx int output',@xxxxx=@xxxxx output
PRINT @xxxxx
@xxxxx int ,
@Pdate varchar(100)
set @Pdate='1308'
set @xxxxx=( select count(id) from [1308] )
--这里正常SET @sql = N'DECLARE @xxxxx int;
SET @xxxxx=(select count(id) from '+QUOTENAME(@Pdate) +' )
'
EXEC sp_executesql @sql
PRINT @xxxxx
DECLARE @sql nvarchar(max),
@xxxxx int ,
@Pdate varchar(100)
set @Pdate=1308
--set @xxxxx=( select count(id) from [1308] )
--这里正常SET @sql = N'
SET @xxxxx=(select count(id) from '+QUOTENAME(@Pdate) +' )
'
--select @sql--前一个是@xxxxx是输出参数,后一个是上面定义的参数,用来存储前一个参数的值
EXEC sp_executesql @sql,N'@xxxxx int output',@xxxxx = @xxxxx output
PRINT @xxxxx
--#1.
DECLARE @sql nvarchar(max),
@xxxxx int ,
@Pdate varchar(100)
SET @sql = N'
SET @xxxxx=(select count(id) from '+QUOTENAME(@Pdate) +' )
'
EXEC sp_executesql @sql, N'@xxxxx int out', @xxxxx out --要把变量传进去,并且标明是out类型(可传出)
PRINT @xxxxx--#2.
DECLARE @sql nvarchar(max),
@xxxxx int ,
@Pdate varchar(100)
SET @sql = N'
select @xxxxx=count(id) from '+QUOTENAME(@Pdate) +' )
'
EXEC sp_executesql @sql, N'@xxxxx int out', @xxxxx out
PRINT @xxxxx