sql >> データベース >  >> RDS >> Sqlserver

SQLServerは列をID列に変換します

    残念ながら、フィールドをIDENTITYに変更することはできません。 既存のテーブル上。

    次のことを行う必要があります:

    • IDENTITYを使用して新しいテーブルを作成します フィールド
    • 発行SET IDENTITY_INSERT ON 新しいテーブル用
    • データを新しいテーブルに挿入します
    • 発行SET IDENTITY_INSERT OFF 新しいテーブル用
    • 古いテーブルを削除する
    • 新しいテーブルの名前を古い名前に変更します。

    SSMSを使用できます フィールドタイプを変更するために、これはすべて舞台裏で行われます。

    サンプルテーブルは次のとおりです:

    CREATE TABLE plain (id INT NOT NULL PRIMARY KEY)
    
    INSERT
    INTO    plain
    VALUES  (1000)
    

    およびSSMSによって生成されたスクリプト :

    SET ANSI_PADDING ON
    SET ANSI_WARNINGS ON
    COMMIT
    BEGIN TRANSACTION
    GO
    CREATE TABLE dbo.Tmp_plain
        (
        id int NOT NULL IDENTITY (1, 1)
        )  ON [PRIMARY]
    GO
    ALTER TABLE dbo.Tmp_plain SET (LOCK_ESCALATION = TABLE)
    GO
    SET IDENTITY_INSERT dbo.Tmp_plain ON
    GO
    IF EXISTS(SELECT * FROM dbo.plain)
         EXEC('INSERT INTO dbo.Tmp_plain (id)
            SELECT id FROM dbo.plain WITH (HOLDLOCK TABLOCKX)')
    GO
    SET IDENTITY_INSERT dbo.Tmp_plain OFF
    GO
    DROP TABLE dbo.plain
    GO
    EXECUTE sp_rename N'dbo.Tmp_plain', N'plain', 'OBJECT' 
    GO
    ALTER TABLE dbo.plain ADD CONSTRAINT
        PK__plain__3213E83F1A609306 PRIMARY KEY CLUSTERED 
        (
        id
        ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    
    GO
    COMMIT
    


    1. SQL Server(T-SQL)のmsdbデータベースからデータベースメールメッセージを削除する

    2. PostgreSQLデータベースをバックアップおよび復元する方法

    3. 'xp_cmdshell' SQL Server を有効にする

    4. postgreSQLJDBCドライバーのロード