gpt4 book ai didi

sql - 将所有同义词更改为另一个数据库

转载 作者:行者123 更新时间:2023-12-03 01:13:39 24 4
gpt4 key购买 nike

我有生产数据库(例如,PROD1)。它与另一个数据库有很多同义词(例如,PROD2)。

我已经创建了 PROD2_TEST (作为 PROD2 的完整副本)和 PROD1_TEST (作为 PROD1 的完整副本>)。但结果是我有 PROD1_TEST 同义词 PROD2,而不是 PROD2_TEST

如何自动重新创建测试数据库的所有同义词?

最佳答案

根据@artm的建议,我对其进行了一些扩展,以包含参数以使其更加通用。这是代码

DECLARE @newDB VARCHAR(MAX) = 'newDB',  --newDB to point the synonym to
@linkedSrv VARCHAR(MAX) = null --if the synonym points to a linked server than specify it here like '[LinkedSrv].' (including the dot in the end)

SELECT 'Drop Synonym [' + SCHEMA_NAME(schema_id) + '].[' + PARSENAME(base_object_name, 1) + '];' AS dropSynonym,
' CREATE SYNONYM [' + SCHEMA_NAME(schema_id) + '].[' + UPPER(PARSENAME(base_object_name, 1)) + '] FOR '
+ COALESCE(@linkedSrv, '') + '[' + @newDB + '].[' + COALESCE(PARSENAME(base_object_name, 2),
SCHEMA_NAME(SCHEMA_ID())) + '].['
+ UPPER(PARSENAME(base_object_name, 1)) + '];' AS createSynonym
FROM sys.synonyms`

关于sql - 将所有同义词更改为另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19132597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com