【Data Platform】/SQL Server

[2k] 컬럼명 및 오브젝트명 변경

디비랑 2008. 9. 7. 12:07
  1. /**********************************************************************************************
    -- Title : [2k] 컬럼명 및 오브젝트명 변경
    -- Reference : dBRang.com
    -- Key word : sp_columns, sp_rename
    **********************************************************************************************/
    -- 컬럼 타입 변경
    USE Northwind
    GO

    SELECT *
    INTO OrdersTest
    FROM Orders
    GO

    EXEC sp_columns OrdersTest   --sp_columns0 'orderstest'
    GO

    ALTER TABLE OrdersTest
      ALTER COLUMN CustomerID char(10)
    GO

    -- 컬럼명 변경
    EXEC sp_rename 'orderstest.shipvia', 'ship_via', 'COLUMN'
    GO

    -- 테이블명 변경
    EXEC sp_rename 'customers', 'custs'
    GO

    -- 프로시저명 변경
    CREATE PROC up_orderstest
    AS
      SELECT *
      FROM orderstest
    GO

    EXEC up_orderstest
    GO

    EXEC sp_rename 'dbo.up_orderstest', 'up_orders', 'OBJECT'
    GO

    EXEC up_orders
    GO
     

    /*
    ** 이하 BOL 셈플
    */
    -- 테이블 이름 변경하기
    EXEC sp_rename 'territories', 'territs'
    GO

    -- 테이블의 인덱스 이름 변경하기
    EXEC sp_rename 'sudtomers.postalcode', 'ix_zipcode', 'INDEX'

    -- 테이블의 컬럼명 변경하기
    EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'

    -- 제약조건 이름 변경하기
    EXEC sp_rename 'Customers_Old.PK_Customers', 'PK_Customers_Old'
    GO

    -- 저장 프로시저, 뷰, 트리거 이름 변경하기
    -- 이 경우는 syscomments에서 변경이 안되기에 drop-create를 권장
    EXEC sp_rename 'Sales by Year', 'SalesByYear'
    GO

    -- 사용자 정의 데이터 형식의 이름 변경하기
    EXEC sp_addtype 'UT_CustID', 'nchar(5)', 'NOT NULL'
    GO

    EXEC sp_rename 'UT_CustID', 'UT_CustomerID', 'USERDATATYPE'
    GO