Определяемый пользователем тип в базах данных - PullRequest
9 голосов
/ 06 марта 2012

У меня есть база данных, которая содержит общие функции, которые я использую в нескольких базах данных.Одна из этих функций принимает в качестве параметра таблицу, которая является определяемым пользователем типом.Я хотел бы знать, если есть способ вызвать эту функцию из другой базы данных.

Я попытался определить тип в другой базе данных следующим образом:

DECLARE @bits as Common.dbo.Bits

Однако я получилошибка слишком много префиксов

Я попытался добавить TYPE в каждую базу данных, а затем передать таблицу этого типа в функцию в общей базе данных, но там я получаю ошибку

Столкновение с типом операнда: биты несовместимы с битами

Ответы [ 2 ]

7 голосов
/ 06 марта 2012

Вы не можете.Даже если вы объявляете тип одинаково в двух базах данных, они не обрабатываются одинаково.А в операторе DECLARE допускается только имя схемы и имя объекта, поэтому нет возможности ссылаться на тип из другой базы данных.

См. Также этот вопрос , чтобы узнать о некоторых возможных обходных решениях.(если вы контролируете обе базы данных)

5 голосов
/ 06 марта 2012

Согласно Создание пользовательских типов данных :

Если пользовательский тип данных создается в базе данных модель , он существует ввсе новые пользовательские базы данных.Однако, если тип данных создается в пользовательской базе данных, тип данных существует только в этой пользовательской базе данных.

...