有条件地触发:CONNECT语句SQL

时间:2017-04-25 03:02:29

标签: sql sql-server ssms sqlcmd

注1:从我迄今为止在研究中看到的情况来看,没有办法完成我想做的事情,但我希望我错了......

注意2:这样做的目的是消除更改不同数据库查询之间连接的需要

我正在编写一个SQL脚本(在SSMS中),以根据ID号查找信息。此查询可以运行2个数据库(测试数据库和生产数据库)。 ID号将位于测试DB或生产中,但不能同时位于两者中。我想要做的是在SQLCMD模式(或替代方法,但我还没有找到一个)中使用:CONNECT语句来连接到相应的数据库。像这样:

:CONNECT /*Testing database name*/
IF NOT EXISTS (SELECT * FROM /*appropriate table*/ WHERE ID = @ID)
    :CONNECT /*Production database name*/

/*Continue with the rest of the query*/

理论上,上面的代码可以确保我连接到正确的数据库(假设ID存在)。不断发生的是,无论IF EXISTS如何,第二个:CONNECT语句都会激活,导致查询始终针对生产运行。

有没有办法实现这个目标?提前谢谢!

1 个答案:

答案 0 :(得分:0)

由于我不知道您需要什么来消除连接更改,您是否考虑过加入这两个表并从那里继续进行所需的结果?如果这是所需的流程,您可以检查返回表中是否存在id。

您也可以查看this。 让我知道它是否有帮助!