Как настроить проект SQLServer DataTools, чтобы иметь возможность публиковать только представления или хранимые процедуры без сравнения и развертывания схемы - PullRequest
0 голосов
/ 22 мая 2018

У меня есть база данных, которой управляет кто-то еще.У меня достаточно прав для создания некоторых представлений или хранимых процедур.К сожалению, владелец базы данных иногда перезаписывает мои изменения, и мои взгляды исчезают.Я хочу создать проект базы данных SQL Server, который позволит мне просто опубликовать представления.Я не хочу хранить схему базы данных в моем проекте (она меняется, она огромна, и мне все равно).Я просто хочу, чтобы мои представления и sp были в состоянии развернуть только их, не сравнивая схему.Возможно ли это?

1 Ответ

0 голосов
/ 22 мая 2018

1)

Поместите представления и хранимые процедуры в один проект и таблицы в другом проекте, на который вы ссылаетесь из первого проекта, используя ссылку "та же база данных".

Просто развернитеdacpac с view / procs и не устанавливайте IncludeCompositeProjects в true.

Убедитесь, что вы не включили DropObjectsNotInSource, но это будет означать, что если вы переименуете или удалите proc / view, вам нужно будет удалить его вручнуюно, по крайней мере, вы не уроните столы и т. д.

Проверьте его правильно, прежде чем приступить к производству:)

2)

Вы сражаетесь с моделью dacpac команды "make"эта база данных выглядит как этот dacpac ", так что, может быть, посмотрите на что-то еще, на готовый рулон или пролет или dbup, где вы все еще можете контролировать исходный код своего кода, но не должны беспокоиться о развертывании схемы и т. д.

Если вы действительно толькокогда-нибудь нужно будет обновить представления и процедуры, тогда вы можете проверить в управлении исходным кодом каждый объект в своем собственном файле, например:

create or alter xx

или, еслиn более старая версия sql:

if exists drop, за которой следует create xx

использование чего-то вроде PowerShell или даже пакетных сценариев dos для генерации одного сценария развертывания:

ls -r *.sql | %{ " r n---file $($_) --- r n";cat $_} > ../deploy.sql

если все, что вам когда-либо нужно обновить, это представления и сохраненные процы, то вы буквально живете мечтой:)

ed

...