dbo 스키마에서 테이블이 작성되지 않음


16

SSMS에서 테이블을 만들 때 다음 명령문을 실행하면

CREATE TABLE [tableName];

테이블은 dbo가 아닌 고유 한 스키마로 작성됩니다. 따라서 dbo 스키마에서이를 작성하려면 다음과 같이 명시 적으로 말해야합니다.

CREATE TABLE [dbo].[tableName];

누구나 테이블을 만들 때 [dbo] 부분을 지정할 필요가없는 방법 (예 : 서버 전체 설정)을 알고 있습니까?


1
어떤 버전의 SQL Server입니까?

4
왜 명시 적으로 지정하는 데 문제가 있습니까?
HLGEM

답변:


8

스키마가 생략 될 때 사용될 스키마는 데이터베이스 사용자의 기본 스키마입니다. 따라서 dbo스키마를 지정하지 않고 작성된 테이블을 가지려면 해당 데이터베이스 사용자의 기본 스키마를로 설정해야합니다 dbo.

서버 전체 설정? 나는 그렇게 생각하지 않습니다. 그러나 특정 데이터베이스의 모든 데이터베이스 사용자가 원하는 dbo경우 기본 스키마로 변경된 쿼리를 작성할 수 있습니다.


@KAJ : SQL2008R2
Chinesinho

1
그러나 Windows 그룹의 경우 기본 스키마를 dbo로 설정할 수 없습니다.
Chinesinho

5
@Chinesinho 서버 보안 주체의 기본 스키마를 설정할 수 없습니다. 서버 로그인과 데이터베이스 사용자를 혼동하고 있습니다. 데이터베이스 사용자는 기본 스키마를 포함합니다.
Thomas Stringer

SQL Server 2012 이전에는 Windows 그룹 로그인에 매핑 된 사용자에 대한 기본 스키마 설정이 지원되지 않습니다.
db2

8

어쩌면 이것이 도움이 될 수 있습니다.

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

3
그러나 사용자가 Windows 인증에 있으면 기본 스키마를 설정할 수 없습니다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.