2014-07-21 3 views
0

Есть ли какой-то синтаксис пространства имен, так что мне не нужно указывать базу данных и схему для каждой таблицы? Dunno, если проблема MS SQL или MS SQL Management Studio.Укажите схему и базу данных только один раз

Псевдо-пример:

using DatabaseName.SchemaName 
SELECT * FROM Tablename1, Tablename2, Tablename3 

Вместо

SELECT * FROM DatabaseName.SchemaName.Tablename1, DatabaseName.SchemaName.Tablename2, DatabaseName.SchemaName.Tablename3 
+0

Ваши имена неправильный путь вокруг , Названия таблиц трех частей: «Database.Schema.Table». –

+0

Спасибо. Починил это. –

ответ

2

Вы можете использовать USE keywaord для базы данных в верхней части сценария, если база данных одинакова для всего сценария

USE Databasename 
SELECT * FROM Schemaname.Tablename1, Schemaname.Tablename2, Schemaname.Tablename3 

Вы также можете установить схему по умолчанию следующим образом:

Безопасность> Логины> (правой кнопкой мыши) пользователя> Свойства> Mapping пользователя> По умолчанию Схема

Также еще один вариант alter your user with the default schema:

ALTER USER SO_July14_Reader WITH DEFAULT_SCHEMA = SO_July14 
+1

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

+0

Не всегда. Например: у меня есть веб-сайт на MS SQL, и каждый раз довольно утомительно добавлять scnema.database при проверке/тестировании/обновлении запросов в скриптах. Это не было бы проблемой, если бы не были версии DEV и LIVE сайтов с разными базами данных. Это означает, что я не должен забывать изменять имена schema.database при перемещении изменений из среды DEV в LIVE. –

+0

Схема - это агрегатор объектов в базе данных. Почему вы говорите об окружающей среде? И почему вы говорите о разных базах данных? Я немного смущен. –

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