我有一个将源数据库中的记录归档到目标数据库中的过程,其中源数据库中的表在目标数据库中镜像。因此,我在指定表名时,还必须完整指定数据库名,如下:
DB_NAME.dbo.TABLE_NAME
但是,我还必须在环境之间移动这个存储过程,其中相应的数据库名称不同。
例如:
开发:
DEV_DB_NAME.dbo.TABLE_NAME
质量保证:
QA_DB_NAME.dbo.TABLE_NAME
我可以使用 SHELL 脚本从环境变量中获取这些 DB 名称并将它们传递到 SPROC。但是,TSQL 不允许数据库名称使用变量。
我有一个解决方案,我基本上只是将整个脚本变成一个字符串并exec
使用动态 SQL 运行。
推荐我的解决方案吗?还有其他解决方案吗?
谢谢。