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

プログラムで非ID列をID列に変更する方法は?

    私の知る限り、IDENTITY として作成された ID フィールドを持つ一時テーブルを作成し、元のテーブルからすべてのデータをコピーする必要があります。最後に、元のテーブルを削除し、一時テーブルの名前を変更します。これは、テーブル (TestTable という名前のテーブル) の例です。 ) ID (整数、非 IDENTITY) と呼ばれる 1 つのフィールドのみを含む:

    BEGIN TRANSACTION
    GO
    CREATE TABLE dbo.Tmp_TestTable
        (
        ID int NOT NULL IDENTITY (1, 1)
        )  ON [PRIMARY]
    GO
    SET IDENTITY_INSERT dbo.Tmp_TestTable ON
    GO
    IF EXISTS(SELECT * FROM dbo.TestTable)
         EXEC('INSERT INTO dbo.Tmp_TestTable (ID)
            SELECT ID FROM dbo.TestTable WITH (HOLDLOCK TABLOCKX)')
    GO
    SET IDENTITY_INSERT dbo.Tmp_TestTable OFF
    GO
    DROP TABLE dbo.TestTable
    GO
    EXECUTE sp_rename N'dbo.Tmp_TestTable', N'TestTable', 'OBJECT' 
    GO
    COMMIT
    


    1. PL / SQLのnull連想配列のこのチェックが失敗するのはなぜですか?

    2. 自動バキュームがバキュームしない場合

    3. プロシージャMySQL5.5.xでSQLEXCEPTIONメッセージを取得する

    4. MacOSX10.6を使用したRubyonRails用のmysql2gemのインストール