SQL Server存储过程:查询中的动态数据库

时间:2017-09-21 14:54:21

标签: sql sql-server stored-procedures

我有一个变量来保存我正在处理的数据库。如何在静态查询中添加此变量?

这就是我想要实现的目标:

if exists(select * from @DestinationDB.[RaPa] where tid = @dyid)
begin
    RAISERROR('Rapa exist',16,1)
end

1 个答案:

答案 0 :(得分:0)

我不确定你的意思是没有动态SQL ...但是这里 动态SQL < / p>

declare @DestinationDB varchar(64)
declare @dyid int
declare @sql varchar(max)

set @DestinationDB = 'SomeDB'
set @dyid = 14

set @sql = 
'if exists(select * from ' + quotename(@DestinationDB) + '.[RaPa] where tid = ' + cast(@dyid as varchar(16)) + ')
begin
    RAISERROR(''Rapa exist'',16,1)
end'

print @sql
--exec(@sql)

当您对命令感到满意时,只需取消注释exec部分。