У мене зберігається процедура, що стосується пов'язаного сервера. У кількох місцях протягом усієї процедури я отримав щось на зразок наступного:
INSERT INTO [TableName]
(...Columns...)
SELECT ...Columns...
FROM [ServerName\InstanceName].[Catalogue].[dbo].[TableName]
WHERE TableNameID = @TableNameID
Ця процедура існує в моєму середовищі розробки, тестовому середовищі та середовищі Live.
Проблема полягає в тому, що кожна копія процедури є тонко різною, оскільки імена серверів різні для кожного середовища. Це робить управління розгортанням оновлень скриптів клопітким.
Чи є спосіб зробити процедуру портативною, щоб кожне середовище могло виконувати однакові її версії?
Якщо ні, чи є щось, що я можу зробити, щоб розгортання сценарію було менш схильним до помилок / помилок?
SELECT <fields> FROM <linked server>
але використовувати однакове ім'я перегляду на всіх серверах, щоб підтримувати код