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 Schema :
ALTER SCHEMA exe
TRANSFER dbo.Employees
답변
아래 시도
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
답변
ALTER SCHEMA NewSchema TRANSFER [OldSchema].[TableName]
ALTER SCHEMA
SQL 에서 쿼리를 사용할 때 항상 대괄호를 사용해야 하거나 오류 메시지가 나타납니다.
답변
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
하고 실행하십시오.
답변
CREATE SCHEMA exe AUTHORIZATION [dbo]
GO
ALTER SCHEMA exe
TRANSFER dbo.Employees
GO
답변
MSDN을 확인하십시오 …
CREATE SCHEMA
: http://msdn.microsoft.com/en-us/library/ms189462.aspx
그때
ALTER SCHEMA
: http://msdn.microsoft.com/en-us/library/ms173423.aspx
또는 SO에서 확인할 수 있습니다 …