0

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

IF EXISTS(SELECT *  FROM Production2.INFORMATION_SCHEMA.COLUMNS
4

1 回答 1

0

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

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

于 2013-10-31T10:44:38.560 回答