首页 > 代码库 > 动态数据库名称的时候,使用sp_executesql

动态数据库名称的时候,使用sp_executesql

 

参考http://www.yjs001.cn/view/17945868128847470518.html

这个链接,根据自己的情况写出

 

set @SqlSJX=select @SJX = COUNT(*) from + @SqlName + where Box not in (‘‘CGX‘‘,‘‘YSC‘‘,‘‘LJX‘‘) 
and isnull(Inside,0)=0 and MailDate<>‘‘‘‘ and CONVERT(date,RecDate,23) >= +‘‘‘‘+ cast(@StartTime as nvarchar(30)) +‘‘‘‘

exec sp_executesql @SqlSJX,N@SJX int output,@SJX output

 

对于https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-executesql-transact-sql微软官方例子又是另一种方法

DECLARE @IntVariable int;  
DECLARE @SQLString nvarchar(500);  
DECLARE @ParmDefinition nvarchar(500);  
DECLARE @max_title varchar(30);  

SET @IntVariable = 197;  
SET @SQLString = NSELECT @max_titleOUT = max(JobTitle)   
   FROM AdventureWorks2012.HumanResources.Employee  
   WHERE BusinessEntityID = @level;  
SET @ParmDefinition = N@level tinyint, @max_titleOUT varchar(30) OUTPUT;  

EXECUTE sp_executesql @SQLString, @ParmDefinition, @level = @IntVariable, @max_titleOUT=@max_title OUTPUT;  
SELECT @max_title;  

 

动态数据库名称的时候,使用sp_executesql