Изменить сборку в SQL Server - PullRequest
       0

Изменить сборку в SQL Server

3 голосов
/ 04 апреля 2011

у нас есть база данных с некоторыми табличными функциями, написанными на C #.У меня есть проект базы данных в Visual Studio, где я использую действие «Развернуть» из Solution Explorer.Однако, когда я хочу "изменить" сборку и функции при тестировании сервера базы данных с моего развивающегося сервера базы данных, я должен вручную (теперь с помощью полу-сценария) удалить функции и сборку, затем создать сборку и создать функции.

В 99%В случаях, когда мы не меняем интерфейс (имена функций, имена столбцов, типы столбцов и т. д.).

Есть ли простой способ изменить сборку и связанные функции / процедуры?Спасибо

1 Ответ

3 голосов
/ 04 апреля 2011

Короткий ответ, похоже, что другого пути нет.

Удаление и повторное создание сборочных и связанных функций - это единственный способ для механизма базы данных проверить, что ваши интерфейсы действительны (и на них имеются действительные ссылки).

EDIT

Метаданные о взаимосвязи между сборками и ссылочными функциями хранятся в таблице sys.assembly_modules:

SELECT *, OBJECT_NAME(OBJECT_ID) FROM sys.assembly_modules

Сгенерировать сценарии удаления из этих метаданных довольно просто:

DECLARE @assembly_name sysname
SET @assembly_name = '<your assembly name>'


SELECT 'drop function ' + OBJECT_NAME(OBJECT_ID)
FROM sys.assemblies AS a
JOIN sys.assembly_modules AS am
ON   am.assembly_id = a.assembly_id
WHERE a.name = @assembly_name

SELECT 'drop assembly ' + @assembly_name

Генерировать скрипты создания намного сложнее, потому что нет способа узнать, изменился ли интерфейс, или расположение сборки dll для загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...