Таблиця не створюється за схемою dbo


16

Створюючи таблиці в SSMS, я зрозумів, що якщо виконати наступне твердження:

CREATE TABLE [tableName];

таблиця буде створена за вашою власною схемою (а не dbo). Отже, щоб створити його за схемою dbo, вам потрібно буде прямо сказати так:

CREATE TABLE [dbo].[tableName];

Хтось знає про спосіб (наприклад, налаштування на весь сервер), щоб при створенні таблиці частину [dbo] не потрібно вказувати?


1
Яка версія SQL-сервера?

4
І чому у вас виникають проблеми з чітким зазначенням?
HLGEM

Відповіді:


8

Схема, яка буде використана, коли схема опущена, буде схемою за замовчуванням користувача бази даних. Отже, щоб dboсхема мала створити таблицю без вказівки, вам доведеться встановити схему за замовчуванням користувача цієї бази даних наdbo .

Налаштування сервера? Я не думаю, що так. Але ви можете написати запит, щоб перетворити всіх користувачів бази даних у певній базі даних на їх схему за замовчуванням, змінену на, dboякщо саме так ви обираєте.


@KAJ: SQL2008R2
Chinesinho

1
Але ви не можете встановити схему за замовчуванням для dbo для груп Windows ...
Chinesinho

5
@Chinesinho Ви не можете встановити схему за замовчуванням для будь-якого головного сервера. Ви плутаєте вхід у систему та користувачі бази даних. Користувачі баз даних містять схеми за замовчуванням.
Томас Стрінгер

Налаштування схеми за замовчуванням для користувачів, відображених на реєстрацію в групі Windows, не підтримується до SQL Server 2012.
db2

8

Можливо, це може допомогти

USE [YourDBName]
GO
ALTER USER [YourUserName] WITH DEFAULT_SCHEMA=[dbo]
GO

3
але якщо користувач у Windows Authentication, він не може встановити схему за замовчуванням
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.