我想了解如何使用别名在同一实例中引用另一个数据库,而不必使用硬编码名称。SQL Server跨数据库别名
的情况是如下:
我有一个存储数据,审计数据库这使所做的所有更改数据分贝。出于各种原因,我想将审计数据保存在一个单独的数据库中,尤其是因为它可能会变得非常大并且用于报告目的。
在数据db中,我不想通过硬编码名称引用此名称,而是使用别名,以便在不同的环境中,我不必更改名称和各种sp以引用新名称。
例如:
mydevdata
mydevaudit
如果mydevdata
存在SP如它调用mydevaudit
,我不想当我去测试,其中分贝的可称为改变SP mytestdata
和mytestaudit
。再次,由于种种原因,该数据库的名称可以改变,更给实例做用空格等
所以,如果我在mydevdata
程序:
proc A
begin
insert into mydevaudit.table.abc(somecol)
select 1
end
,当我去考,我不想改变程序引用另一个名称,(承担便于讨论所发生)
相反,我希望做类似:
proc A
begin
insert into AUDITEBALIAS.table.abc(somecol)
select 1
end
我我有兴趣了解我可以如何做这样的事情,以及专业和缺点。
此外,dymnamic SQL不是一个选项。
在此先感谢您的帮助。
请你能否详细说明为什么“dymnamic SQL不是一个选项” – Seph