首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个关于动态表名调用的小疑点

2013-09-06 
一个关于动态表名调用的小问题 DECLARE@sqlnvarchar(max),@xxxxx int ,@Pdate varchar(100) set @Pdate13

一个关于动态表名调用的小问题

 
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  ,帮忙看下正确的语句是什么?

[解决办法]
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 ,N'@xxxxx int output',@xxxxx=@xxxxx output 
 
PRINT @xxxxx

[解决办法]
DECLARE   @sql  nvarchar(max),
          @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

热点排行