2009-11-03 4 views
1

У меня есть UDF в SQL 2005, который мне понадобится для schemabind, поскольку он используется в представлении, в котором мне нужен индекс.Связывание схемы для UDF с использованием таблиц из других db

Этот UDF получает информацию из таблицы, расположенной в другом db (тот же сервер), а затем тот, где расположен UDF.

Поскольку это недействительно, чтобы указать таблицу как [DBName] .dbo. [Tablename], есть ли способ получить информацию из таблицы в другом db?

ответ

1

Предполагается, что привязка схемы гарантирует согласованность. Однако согласованность не может быть гарантирована в двух разных базах данных, поэтому привязка схемы не может быть реализована в двух разных базах данных. Другими словами, достичь невозможно.

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

+0

Вот что я сделал, спасибо – MarkyMarc

0

Если ваш UDF находится в базе данных1, и ему необходимо получить доступ к данным из таблицы в Database2, все, что вам нужно сделать, это создать представление в Database1, которое захватывает данные, которые вам нужны из таблиц (таблиц) в Database2. Затем используйте это представление в своем UDF.

Работает отлично, я использовал этот подход много раз.

Надеюсь, это поможет.

+0

Я попробовал то, что вы предлагаете, но теперь я получаю сообщение об ошибке, что новый вид, который я использую в UDF, не привязан к схеме, и когда я пытаюсь добавить схему с новым представлением, я получаю ту же проблему, Мне нужно зайти в базу данных 2. – MarkyMarc

Смежные вопросы