Как мне создать таблицу SQL в другой схеме?


137

Это из SQL Server 2008, ssms

Когда я создаю таблицу, она создается под dbo.

Я хотел бы создать его в другой схеме, но когда я использую диалоговое окно «Новая таблица», я никогда не могу найти поле, где это указать.

Ответы:


242
  1. Щелкните правой кнопкой мыши узел таблиц и выберите New Table...
  2. Открыв конструктор таблицы, откройте окно свойств (вид -> Окно свойств).
  3. Вы можете изменить схему, в которой будет создаваться таблица, выбрав схему в окне свойств.

Как бы вы сделали это программно. т.е. создать таблицу SUSER_SNAME (). [MyTableName], но это на самом деле работает. Кроме того, это справедливый способ хранения временных глобальных переменных, чтобы позволить различным приложениям общаться друг с другом?
Adamantish

Хорошо, спасибо, но я имел в виду иметь имя схемы в качестве переменной, в зависимости от того, какой пользователь ее запускает. Сделал это с небольшим динамическим SQL, но затем нашел лучший способ поместить эти переменные в таблицу на компьютере пользователя.
Adamantish

1
@adrianbanks очень любезно с вашей стороны указать им правильное направление, сэр!
Шон Ф

Спасибо @adrianbanks. Некоторое время не делал этого и был на грани написания скрипта создания!
Карл Гёртсен,

50

Попробуйте запустить CREATE TABLE [schemaname].[tableName]; GO;

Это предполагает, что имя схемы существует в вашей базе данных. Пожалуйста, используйте, CREATE SCHEMA [schemaname]если вам нужно создать схему.

РЕДАКТИРОВАТЬ: обновлено, чтобы отметить SQL Server 11.03, требуя, чтобы это был единственный оператор в пакете.


1
Да, я понимаю, что могу это сделать, мне просто интересно, есть ли в диалоговой версии вариант где-то это сделать.
Мэтт

Я попробовал то же самое, это не работает, я делаю что-то не так? ИЛИ это просто работает в MSSQL 2012?
Панкадж Паркар

7
@PankajParkar: это не будет работать, если схема не существует. Сначала создайте схему, используя create schema [schema_Name]приведенный выше запрос.
Санграм Нандхиле

14

                           создать схему базы данных в SQL Server 2008
1. Перейдите в «Безопасность»> «Схемы».
2. Щелкните правой кнопкой мыши «Схемы» и выберите «Новая схема».
3. Заполните сведения на вкладке «Общие» для новой схемы. Например, имя схемы - «MySchema», а владельцем схемы - «Admin».
4. При необходимости добавьте пользователей в схему и установите их разрешения:
5. Добавьте все расширенные свойства (через вкладку «Расширенные свойства»)
6. Нажмите OK.
                          Добавление таблицы в новую схему «MySchema»
1. В обозревателе объектов щелкните правой кнопкой мыши имя таблицы и выберите «Дизайн»:
2. Изменение схемы базы данных для таблицы в SQL Server Management Studio
3. В режиме конструктора нажмите клавишу F4, чтобы отобразить окно свойств.
4. Из окна «Свойства» измените схему на нужную схему:
5. Закройте представление «Дизайн», щелкнув правой кнопкой мыши вкладку и выбрав «Закрыть»:
6. Закрытие представления «Дизайн»
7. Нажмите «ОК» при появлении запроса на сохранение.
8. Ваша таблица теперь перенесена в схему «MySchema».

Обновление представления «Обозреватель объектов» Для подтверждения изменений
Готово


Очень полезен предыдущий процесс создания схемы БД. Спасибо.
mggSoft


5

Ответ Шона Ф. не сработает, если Схема не существует в БД. Если кто-то ищет способ создания схемы, просто выполните следующий скрипт для создания схемы.

create schema [schema_name]
CREATE TABLE [schema_name].[table_name](
 ...
) ON [PRIMARY]

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

Вы также можете изменить схему текущей таблицы, используя окно свойств.

См:

введите описание изображения здесь


В SQL Server 11.0.3+ это приведет к ошибке, CREATE SCHEMA должна быть единственной операцией в пакете. CREATE SCHEMA setup; GO
hajikelist

3

Когда я создаю таблицу с использованием SSMS 2008, я вижу 3 панели:

  • Колонка конструктор
  • Свойства столбца
  • Свойства таблицы

На панели свойств таблицы есть поле, Schemaкоторое позволяет выбрать схему.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.