SQL Server 2005中有两个数据库:一个名为"A",另一个名为"A_2"."A"是用户输入的变量名,第二个数据库的"_2"前缀始终是已知的.(所以数据库可以是"MyDB"和"MyDB_2"等)
如何在不知道实际名称的情况下从存储过程中访问其他数据库而不使用'exec'语句?
您可以尝试使用称为同义词的新SQL Server 2005功能.
您需要CREATE SYNONYM,然后使用同义词编译并保存存储过程.这将使您有可能在以后"动态"更改同义词.显然,仍然需要将CREATE SYNONYM代码作为动态SQL运行.
要运行CREATE SYNONYM,必须为用户授予相应的权限,或者具有ALTER SCHEMA权限.在你走这条路线之前一定要阅读更多关于同义词的内容,附上几个字符串.