복붙노트

[SQL] 표에서 SQL의 변경 스키마 이름

SQL

표에서 SQL의 변경 스키마 이름

나는 데이터베이스에서 테이블 종업원의 스키마 이름을 변경하고 싶습니다. 내가 EXE 파일을 변경하려면 DBO 현재 테이블 종업원 데이터베이스 스키마 이름입니다. 내가 어떻게 해 ?

예:

에서

dbo.Employees

exe.Employees

나는이 쿼리를 시도했다 :

ALTER SCHEMA exe TRANSFER dbo.Employees

그러나 이것은 나에게 오류를 제공합니다 :

내가 놓친 게 무엇입니까?

해결법

  1. ==============================

    1.스키마 만들기 :

    스키마 만들기 :

    IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'exe')) 
    BEGIN
        EXEC ('CREATE SCHEMA [exe] AUTHORIZATION [dbo]')
    END
    

    OLD 체계 :

    ALTER SCHEMA exe 
        TRANSFER dbo.Employees
    
  2. ==============================

    2.아래 시도

    아래 시도

    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
    
  3. ==============================

    3.

    ALTER SCHEMA NewSchema TRANSFER [OldSchema].[TableName]
    

    난 항상 SQL의 ALTER SCHEMA 쿼리를 사용할 때 괄호를 사용해야합니다, 아니면 오류 메시지가 표시됩니다.

  4. ==============================

    4.SSMS를 통해, 나는 새로운 스키마를 만든이 :

    SSMS를 통해, 나는 새로운 스키마를 만든이 :

    내가 스키마를 변경하려면이 게시물을 찾았지만, 새 스키마로 변경하려고 할 때 같은 권한 오류가 발생했습니다. 난 그냥 데이터베이스를 지정 시도하고 일했다, 그래서 나는 나의 SSMS에 나와있는 여러 데이터베이스를 가지고 :

    USE (yourservername)  
    ALTER SCHEMA exe TRANSFER dbo.Employees 
    
  5. ==============================

    5.귀하의 코드는 다음과 같습니다

    귀하의 코드는 다음과 같습니다

    FROM
     dbo.Employees
    TO
     exe.Employees
    

    나는이 쿼리를 시도했다.

    ALTER SCHEMA exe TRANSFER dbo.Employees
    

    그냥 쓰기 스키마의 exe를 생성하고 실행

  6. ==============================

    6.

    CREATE SCHEMA exe AUTHORIZATION [dbo]
    GO
    
    ALTER SCHEMA exe
    TRANSFER dbo.Employees
    GO
    
  7. ==============================

    7.MSDN을 확인 ...

    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에서 스키마에 테이블을 이동하려면 어떻게

  8. ==============================

    8.SQL에서 매우 매우주의 이름 바꾸기 오브젝트합니다. 당신은 당신이 완전히 떨어져 당신이 무엇을하고 있는지에없는 경우 의존성이 실패 할 수 있습니다. 이 쉽게 (너무 너무) 사물의 이름을 변경 당신은 환경에 대한 적절한 액세스를 제공 작동했다 가졌 :

    SQL에서 매우 매우주의 이름 바꾸기 오브젝트합니다. 당신은 당신이 완전히 떨어져 당신이 무엇을하고 있는지에없는 경우 의존성이 실패 할 수 있습니다. 이 쉽게 (너무 너무) 사물의 이름을 변경 당신은 환경에 대한 적절한 액세스를 제공 작동했다 가졌 :

    exec sp_rename 'Nameofobject', 'ReNameofobject'
    
  9. ==============================

    9.당신이 SSMS의 오른쪽 데이터베이스 컨텍스트에있어합니다. 당신과 같은 오류가 발생했습니다,하지만 난 스키마가 이미 존재 알고 있었다. 몰랐어요 나는 'MASTER'맥락에서였다. 내 데이터베이스에 컨텍스트를 변경 한 후 ALTER 일했다.

    당신이 SSMS의 오른쪽 데이터베이스 컨텍스트에있어합니다. 당신과 같은 오류가 발생했습니다,하지만 난 스키마가 이미 존재 알고 있었다. 몰랐어요 나는 'MASTER'맥락에서였다. 내 데이터베이스에 컨텍스트를 변경 한 후 ALTER 일했다.

  10. ==============================

    10.경우에, 누군가가 낮은 버전을 찾고 -

    경우에, 누군가가 낮은 버전을 찾고 -

    SQL 서버 2000 :

    sp_changeobjectowner를 @objname = 'dbo.Employess', @newowner = 'EXE'

  11. from https://stackoverflow.com/questions/15482838/change-schema-name-of-table-in-sql by cc-by-sa and MIT license