Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вопрос по SSDT и межбазовым ссылкам  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8570
Кто-нибудь решал такую проблему - что делать если в базе А есть обращения к базе Б и в базе Б есть обращения к базе А и все это должно находиться в одном решении?
Если это невозможно, то как разнести базы по решениям, не получив ошибки ссылок?
Вторая проблема - как произвести сравнение схем, если в базе имеются референсные переменные?

И еще вопрос. Существует ли инструмент разработки, позволяющий работать с такими базами?
13 ноя 15, 13:14    [18411783]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по SSDT и межбазовым ссылкам  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Я генерировал из базы, на которую ссылается проект, dacpac-файл и делал ссылку на него.
Конечно, недостаток, надо постоянно обновлять, но в целом работает.
13 ноя 15, 13:37    [18411963]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по SSDT и межбазовым ссылкам  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35078
Блог
Владислав Колосов,

решили через синонимы,
если внешняя ссылка в них, то все ок
13 ноя 15, 13:40    [18411984]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по SSDT и межбазовым ссылкам  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
С синонимами проблема, если в решении несколько проектов, и синоним имеет то же имя, что и объект, на который он ссылается.
Ещё, если генерировать dacpac-файл не из Visual Studio, а из Management Studio, то тоже возникают ошибки типа
Error SQL71562: Error validating element [dbo].[Set]: Synonym: [dbo].[Set] has an unresolved reference to object [DB1].[config].[Set]. External references are not supported when creating a package from this platform.

Думаю, тут дело в версиях.
У меня
Microsoft SQL Server 2014 - 12.0.4213.0 (X64)
Jun 9 2015 12:06:16
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)

Microsoft SQL Server Management Studio 12.0.2269.0

Microsoft Visual Studio Enterprise 2015
Version 14.0.23107.0 D14REL
Microsoft .NET Framework
Version 4.6.00079

SQL Server Data Tools 14.0.50901.0
Microsoft SQL Server Data Tools
13 ноя 15, 13:57    [18412092]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по SSDT и межбазовым ссылкам  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8570
если генерировать dacpac-файл не из Visual Studio, а из Management Studio, то тоже возникают ошибки типа

С этим я тоже столкнулся, почти сразу же.

С переменными нашел информацию, как разобраться - при создании референса просто стереть имя переменной.
13 ноя 15, 14:12    [18412190]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по SSDT и межбазовым ссылкам  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8570
А как быть с системными представлениями? У них неразрешенные ссылки, а добавить в проект нельзя (что верно, впрочем).
13 ноя 15, 16:14    [18413114]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по SSDT и межбазовым ссылкам  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8570
В чем же секрет использования синонимов? При попытке создать синоним в базе А на таблицу базы Б при условии существовании ссылки в базе Б на базу А я получаю предупреждение о неразрешенной ссылке.

Например:
CREATE SYNONYM [dbo].[Syn1] FOR [BaseB].[dbo].[Table]
16 ноя 15, 18:35    [18425665]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по SSDT и межбазовым ссылкам  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
CREATE SYNONYM [dbo].[Syn1] FOR [$(BaseB)].[dbo].[Table] 
?
17 ноя 15, 09:48    [18427483]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по SSDT и межбазовым ссылкам  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Владислав Колосов
А как быть с системными представлениями? У них неразрешенные ссылки, а добавить в проект нельзя (что верно, впрочем).
Я добавляю ссылки на системные базы и компиляция проходит нормально.
17 ноя 15, 10:03    [18427581]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по SSDT и межбазовым ссылкам  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8570
Для синонима требуется ссылка, а добавление ссылки запрещено из-за возникновения циклических ссылок между проектами одного решения. Вероятно, придется фейковые базы создавать, несколько неудобно. Т.е. у нас есть две базы, которые ссылаются друг на друга.
17 ноя 15, 11:30    [18428204]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по SSDT и межбазовым ссылкам  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Как я писал, я решаю эту проблему, добавляя ссылки не на проект, а на dacpac-файл, сгенерированный из соответствующей базы.
17 ноя 15, 12:18    [18428559]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить