В моей базе данных имеется большое количество таблиц, давайте назовем их Table1, Table2, Table3 и т. Д., Которые мне нужно настроить для репликации слиянием, что означает, что SQL Сервер создаст новый столбец (rowguid) в каждой таблице.
Это проблематично c для моего внешнего интерфейса (который я не могу изменить), поэтому моя идея сейчас состоит в том, чтобы создать представление каждой таблицы с удаленным столбцом rowguid и поместить их в собственную схему .
Из-за большого количества таблиц и большого количества столбцов в каждой таблице это нелегко сделать вручную, поэтому сейчас я пытаюсь написать для этого некоторый код SQL. Без успеха я должен сказать.
Мне нужен рекурсивный код, который создает новое представление для каждой таблицы (имя которой совпадает с именем таблицы, но в новой схеме), но в каждой таблице отсутствует столбец rowguid. .
Я узнал, как я могу отбросить столбец rowguid без необходимости явно знать имена столбцов (они варьируются от таблицы к таблице).
SELECT * INTO #TemporaryTable FROM [dbo].[Table1]
ALTER TABLE #TemporaryTable DROP COLUMN rowguid
SELECT * FROM #TemporaryTable
DROP TABLE #TemporaryTable
Но как это объединить с CREATE VIEW (может иметь только один SELECT, как я понимаю), а затем также передать его в go через все таблицы в моей базе данных, что выходит за рамки моей компетенции.