【发布时间】:2020-05-11 15:04:43
【问题描述】:
我有一些需要针对本地和 AWS RDS SQL Server 实例的数据库部署脚本,但有些脚本执行 RDS 不支持的命令。
与其维护两个脚本(90% 相同),我更愿意在 RDS 中运行时使用过程 T-SQL 逻辑来跳过/修改脚本的各个部分。
目前,我正在使用以下逻辑
IF EXISTS (SELECT * FROM sys.databases WHERE name = 'rdsadmin' AND database_id = 5)
...
是否有更好/更可靠的方法来确定脚本是否在 RDS SQL Server 实例上执行?
(我可能只是缺少正确的搜索词来找到答案 - 如果是这样,请道歉。)
【问题讨论】:
-
这是 Ola Hallengren 在他的维护解决方案脚本中使用的逻辑:
DECLARE @AmazonRDS bit = CASE WHEN DB_ID('rdsadmin') IS NOT NULL AND SUSER_SNAME(0x01) = 'rdsa' THEN 1 ELSE 0 END
标签: sql-server tsql amazon-rds