Як створити таблицю SQL за іншою схемою?


137

Це з SQL Server 2008, ssms

Коли я створюю таблицю, вона створюється під dbo.

Я хотів би створити його за іншою схемою, але коли я використовую діалог "Нова таблиця", я ніколи не можу знайти поле, де це вказати.

Відповіді:


242
  1. Клацніть правою кнопкою миші по вузлу таблиць і виберіть New Table...
  2. Відкривши дизайнер таблиці, відкрийте вікно властивостей (view -> Window Properties).
  3. Ви можете змінити схему, в яку буде виготовлена ​​таблиця, вибравши схему у вікні властивостей.

Як би ти це зробив програмно. тобто створити таблицю SUSER_SNAME (). [MyTableName], але це фактично працює. Також, це справедливий спосіб зберігання тимчасових глобальних змінних, щоб різні програми могли спілкуватися один з одним?
Адамантиш

Добре дякую, але я мав на увазі наявність назви схеми як змінної, згідно з якою користувач її працює. Зробили це з невеликим динамічним SQL, але потім знайшли кращий спосіб помістити ці параметри в таблицю на машині користувача.
Адамантиш

1
@adrianbanks дуже люб'язно з вами, щоб вказувати їх у правильному напрямку, сер!
Shaun F

Дякуємо @adrianbanks. Не робив цього деякий час і був на порозі написання сценарію створення!
Karl Gjertsen

50

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

Це передбачає, що ім'я схеми існує у вашій базі даних. Будь ласка, використовуйте, CREATE SCHEMA [schemaname]якщо вам також потрібно створити схему.

EDIT: оновлено до примітки SQL Server 11.03, вимагаючи, щоб це було єдиним твердженням у пакетній партії.


1
Так, я розумію, що міг би це зробити, мені було просто цікаво, чи є в діалоговій версії десь такий варіант зробити.
Метт,

Я спробував те саме, його не працює, чи я щось роблю не так? Або це просто працює в MSSQL 2012?
Pankaj Parkar

7
@PankajParkar: Це не працюватиме, якщо схеми не існує. Спершу створіть схему, використовуючи create schema [schema_Name]поданий вище запит.
Sangram Nandkhile

14

                           Створіть схему бази даних у SQL Server 2008
1. Перейдіть до пункту Безпека> Схеми
2. Клацніть правою кнопкою миші по схемах та виберіть Нову схему
3. Заповніть деталі на вкладці Загальні для нової схеми. Мовляв, назва схеми - "MySchema", а власник схеми - "Адміністратор".
4. Додайте користувачів до схеми за потребою та встановіть їх дозволи:
5. Додайте будь-які розширені властивості (на вкладці Розширені властивості)
6. Клацніть OK.
                          Додавання таблиці до нової схеми "MySchema"
1. У Object Explorer правою кнопкою миші натисніть на назву таблиці та виберіть "Дизайн":
2. Зміна схеми бази даних для таблиці в SQL Server Management Studio
3. З виду "Дизайн" натисніть F4, щоб відобразити вікно Властивості.
4. У вікні "Властивості" змініть схему на потрібну схему:
5. Закрийте Дизайн дизайну, клацнувши вкладку правою кнопкою миші та вибравши "Закрити":
6. Закриття дизайнерського перегляду
7. Натисніть "ОК", коли з'явиться запит на збереження
8. Ваша таблиця тепер перенесена в схему "MySchema".

Оновіть подання браузера об’єктів Щоб підтвердити зміни
Готово


Дуже корисний попередній процес створення схеми БД. Дякую.
mggSoft


5

Відповідь Shaun F не буде працювати, якщо схеми не існує в БД. Якщо хтось шукає спосіб створити схему, тоді просто виконайте наступний скрипт для створення схеми.

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.