Почему эта ссылка sproc находит правильную таблицу для обновления? - PullRequest
1 голос
/ 23 февраля 2009

Если у меня есть такие таблицы:

ImportSet1.Users
ImportSet2.Users
ImportSet3.Users

Тогда в моем sproc я делаю это:

CREATE PROCEDURE [ImportSet2].[UpdateUsers]

...
UPDATE Users
   set blah = 234
WHERE id = 234

Это похоже на работу, но почему? С каких пор этот префикс [ImportSet2] означает часть имени таблицы? (в данном случае ImportSet2)

Ответы [ 2 ]

3 голосов
/ 23 февраля 2009

Sproc создается по схеме ImportSet2, поэтому по умолчанию он будет ссылаться на объекты в схеме ImportSet2, если имя схемы не указано.

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

0 голосов
/ 23 февраля 2009

Чтобы ответить «с каких пор», конечно, к 2000 году у вас могут быть объекты, принадлежащие владельцам, кроме dbo. С 2005 года MS разделила понятия владельцев и схем.

Я полагаю, эта функция появилась в более раннем выпуске SQL Server, 6.5 или 7.0. Так что это вряд ли что-то новое (хотя есть существенная боль при использовании функции до 2005 года)

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