列の変更

適用対象: SQL Server 2016 (13.x) 以降 Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQL Server Management Studio または Transact-SQL を使って、SQL Server の列のデータ型を変更できます。

警告

既にデータが格納されている列のデータ型を変更すると、既存のデータが新しい型に変換される時点で、それらのデータは完全に失われます。 さらに、変更した列に依存しているコードやアプリケーションも正常に動作しなくなる場合があります。 これには、クエリ、ビュー、ストアド プロシージャ、ユーザー定義関数、およびクライアント アプリケーションが含まれます。 このようなエラーは連鎖するので注意が必要です。 たとえば、変更した列に依存しているユーザー定義関数を呼び出すストアド プロシージャは、正常に動作しない可能性があります。 列に対して変更を行う場合は、よく考えてから行う必要があります。

アクセス許可

テーブルに対する ALTER 権限が必要です。

SQL Server Management Studio (SSMS) の使用

SSMS を使用して列のデータ型を変更する方法

  1. オブジェクト エクスプローラーで、有効桁数を変更する列が含まれているテーブルを右クリックして、[デザイン] を選択します。

  2. データ型を変更する列を選択します。

  3. [列のプロパティ] タブで、[データ型] プロパティのグリッド セルを選択し、ドロップダウン リストから新しいデータ型を選択します。

  4. [ファイル] メニューの [<テーブル名> を保存] を選びます。

Note

列のデータ型を変更すると、テーブル デザイナーでは選択したデータ型の既定の長さが適用されます。これは既に別の長さを選択していた場合でも同じです。 データ型の指定後、必要な値を格納できるようにするために、データ型に適切な長さを設定してください。

警告

別のテーブルに関連付けられている列のデータ型を変更しようとすると、別のテーブルの列にも変更が行われることを確認するメッセージがテーブル デザイナーに表示されます。

Transact-SQL の使用

Transact-SQL を使用して列のデータ型を変更する方法

  1. オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。

  2. 標準バーで、 [新しいクエリ] を選択します。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。

    CREATE TABLE dbo.doc_exy (column_a INT );  
    GO  
    INSERT INTO dbo.doc_exy (column_a) VALUES (10);  
    GO  
    ALTER TABLE dbo.doc_exy ALTER COLUMN column_a DECIMAL (5, 2);  
    GO  
    

次のステップ