如何为硬编码数据库声明变量?

时间:2013-10-31 10:38:10

标签: sql sql-server database tsql if-statement

我的SQL中有一些硬编码数据库值,我需要转换为变量,我已经在地方声明了它们但我需要将Production2更改为@Source_Database_Name变量,但是我不知道如何将它放入紧随其后的信息架构没有出现语法错误

IF EXISTS(SELECT *  FROM Production2.INFORMATION_SCHEMA.COLUMNS

1 个答案:

答案 0 :(得分:0)

我想你能做到这一点的唯一方法是动态sql生成(不幸的是)。实际上有很多原因(从数据库引擎的角度来看)不允许用户以您想要的方式参数化查询。位于我头顶的是,它将无法验证查询的语法(无法知道您指的是实际存在的内容)。

如果你在谈论“能够针对不同的数据库执行相同的SQL集”并且你实际上是从代码(.NET /任何东西)执行这个sql,你可以获得相同的结果通过在连接字符串中指定目标数据库(即通过更改设置数据库的级别 - 不在[sql]脚本中,而是在某些外部点)。