在存储过程中动态设置数据库名称

时间:2017-07-10 15:58:15

标签: sql-server tsql

我希望能够在存储过程/视图中动态更改数据库名称。

示例:

SELECT USER_FNM
FROM MYBASE_01.DBO.USERS

我想MYBASE_01动态,也许存储在某个变量中。这可能吗?

我的理由是我有很多视图,其中包含数据库名称。通过部署,我必须在每个视图中更改此名称。如果数据库名称只能存储在一个变量中会更容易,因此不需要为所有视图更改它。

1 个答案:

答案 0 :(得分:1)

您可以使用动态SQL对动态表执行查询。只要字符串文字“@DBNAMEVAR”没有出现在您的查询中的任何其他位置,这应该可行。为了将您的查询转换为字符串,只需用两个单引号替换任何单引号,然后输入单引号以及开头和结尾。

注意:这很容易受到SQL注入的影响,因此请对该输入进行清理,否则有人可能会要求您的数据库执行任何操作。

Properties.Settings