SQL에서 테이블의 스키마 이름 변경
테이블의 스키마 이름을 변경하고 싶다Employees
를 참조해 주세요.현재 표에서Employees
데이터베이스 스키마 이름은dbo
로 바꾸고 싶습니다exe
어떻게 하면 좋을까요?
예:
부터
dbo.Employees
로.
exe.Employees
다음 질의를 시도했습니다.
ALTER SCHEMA exe TRANSFER dbo.Employees
하지만 이 경우 오류가 발생합니다.
스키마 'exe'가 없거나 사용 권한이 없으므로 변경할 수 없습니다.
내가 뭘 놓쳤지?
스키마 생성:
IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'exe'))
BEGIN
EXEC ('CREATE SCHEMA [exe] AUTHORIZATION [dbo]')
END
ALTER 스키마:
ALTER SCHEMA exe
TRANSFER dbo.Employees
ALTER SCHEMA NewSchema TRANSFER [OldSchema].[TableName]
항상 브래킷을 사용해야 합니다.ALTER SCHEMA
SQL에서 쿼리하지 않으면 오류 메시지가 나타납니다.
아래를 시험해 보세요
declare @sql varchar(8000), @table varchar(1000), @oldschema varchar(1000), @newschema varchar(1000)
set @oldschema = 'dbo'
set @newschema = 'exe'
while exists(select * from sys.tables where schema_name(schema_id) = @oldschema)
begin
select @table = name from sys.tables
where object_id in(select min(object_id) from sys.tables where schema_name(schema_id) = @oldschema)
set @sql = 'alter schema ' + @newschema + ' transfer ' + @oldschema + '.' + @table
exec(@sql)
end
CREATE SCHEMA exe AUTHORIZATION [dbo]
GO
ALTER SCHEMA exe
TRANSFER dbo.Employees
GO
SSMS를 통해 다음과 같은 방법으로 새로운 스키마를 작성했습니다.
- 서버 내의 오브젝트 탐색기에서 보안 폴더를 클릭하면
- 오른쪽 클릭 스키마
- 새 스키마를 선택했습니다.."
- 내 새 스키마 이름 지정(이 경우 exe)
- [확인]을 클릭합니다.
스키마를 변경하기 위해 이 게시물을 찾았는데 새 스키마로 변경하려고 할 때 동일한 권한 오류가 발생했습니다.SSMS에 몇 개의 데이터베이스가 있기 때문에 데이터베이스를 지정하려고 하면 다음과 같이 동작합니다.
USE (yourservername)
ALTER SCHEMA exe TRANSFER dbo.Employees
고객님의 코드는 다음과 같습니다.
FROM
dbo.Employees
TO
exe.Employees
나는 이 질문을 시도했다.
ALTER SCHEMA exe TRANSFER dbo.Employees
그냥 쓰세요create schema exe
실행하다
MSDN 확인...
CREATE SCHEMA
: http://msdn.microsoft.com/en-us/library/ms189462.aspx
그리고나서
ALTER SCHEMA
: http://msdn.microsoft.com/en-us/library/ms173423.aspx
아니면 SO에서 확인할 수도 있고...
T-SQL에서 테이블을 스키마로 이동하려면 어떻게 해야 합니까?
SSMS에서 올바른 데이터베이스 컨텍스트에 있는지 확인하십시오. 같은 오류가 발생했지만 스키마가 이미 있다는 것을 알았습니다.내가 '마스터' 문맥에 있는 줄 몰랐네ALTER는 내가 내 데이터베이스로 콘텍스트를 변경한 후에 작동했다.
혹시라도 더 낮은 버전을 찾는 사람이 있다면...
SQL Server 2000의 경우:
sp_changeobjectowner @objname = 'dbo'입니다.Employeeess', @newowner ='exe'
sql 내의 오브젝트 이름을 변경할 때는 매우 주의해 주십시오.작업을 제대로 수행하지 않으면 종속성이 실패할 수 있습니다.환경에 대한 적절한 액세스만 있으면, 이 조작은 물건의 이름을 변경하는 데 있어서 간단하게 기능합니다(너무 많이).
exec sp_rename 'Nameofobject', 'ReNameofobject'
또한 기본 스키마 'dbo'에서 마법사에서 스키마로 데이터를 전송할 수 있습니다.db diagram을 1번 더블클릭하고 증명서 엔티티를 우클릭합니다.--> ID 오른쪽에서 속성 3번 선택, 스키마 이름을 변경합니다.
SQL2019의 경우:
ALTER SCHEMA [SCEMAYOUWANTTOTRANSFERTO] TRANSFER [CURRENTSCHEMA].[TABLENAME];
예:
ALTER SCHEMA [dbo] TRANSFER [Curated].[MyTable];
언급URL : https://stackoverflow.com/questions/15482838/change-schema-name-of-table-in-sql
'UFO ET IT' 카테고리의 다른 글
배치 파일 실행 후 콘솔 자동 닫힘 방지 방법 (0) | 2023.04.08 |
---|---|
배치 파일의 앳 기호(@)는 무엇이며 어떤 역할을 합니까? (0) | 2023.04.08 |
Windows PowerShell에서 현재 사용자 이름을 얻으려면 어떻게 해야 합니까? (0) | 2023.04.08 |
vim — 파일에서 현재 버퍼로 줄 범위를 읽는 방법 (0) | 2021.01.17 |
함수 프로토 타입을 C로 선언해야합니까? (0) | 2021.01.17 |