2010-03-31 2 views
2

Teradata에서 SqlServer로 데이터베이스를 변환하고 있습니다. 모든 테이블과 프로 시저의 접두사가 "dbo"인 것으로 나타났습니다. (예 : 'dbo.Table1').dbo in SqlServer

나는 변환 작업을 훨씬 더 쉽게하기 때문에 "dbo"를 제거 할 수 있는지 알고 싶습니다.

답변

1

dbo이 아니며 테이블 이름의 일부는입니다. 테이블과 저장 프로 시저가 첨부 된 스키마의 이름입니다. dbo은 SQL 서버의 기본 스키마이지만 필요한 경우 다른 사용자를 추가 할 수 있습니다.

this MSDN 문서를 참조하십시오.

3

dbo가 스키마이므로 원하는 경우 새 스키마를 지정할 수 있습니다. dbo가 기본값은 SQL Server입니다.

0

새 스키마를 만들고 테이블을 만들려는 경우 사용자가 스키마를 설정하지 않은 경우 dbo는 SQL Server의 기본 스키마입니다 ( ).

1

모든 테이블은 스키마로 이동해야합니다. durilai가 말했듯이 dbo는 SQL Server의 "기본"스키마입니다 (항상 존재합니다). 그러나 여러 사용자가 서로 다른 기본 스키마를 가질 수 있습니다 (둘 이상이있는 경우).

스키마를 지정하지 않고 테이블을 참조하면 SQL Server는 기본 스키마에서 스키마를 검색합니다 (다른 개체도 마찬가지입니다).

select * from Table1 
select * from dbo.Table1 
0

스키마가 유용합니다

그래서, 경우 기본 스키마는 다음 두 명령문은 동일합니다, DBO입니다. 예를 들어, 모든 저장 프로 시저에 개별적으로 앱 로그인 실행 권한을 부여하는 경우가있었습니다. 이제 모든 저장 프로 시저가 포함 된 스키마에 app login 실행 권한을 부여합니다. 이것은 훨씬 쉽습니다.