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

データ型 Char から Nvarchar への変換

    INFORMATION_SCHEMA.COLUMNS から選択することは、どの列を変換する必要があるかを判断する良い方法です。

    SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE = 'CHAR';
    

    ただし、列のデータ型を直接変更するために使用することはできません。 ALTER TABLE 列のデータ型を変更するために使用されます:

    ALTER TABLE [dbo].[TableName] ALTER COLUMN [ColumnName] NVARCHAR(50);
    

    その間、NVARCHAR(MAX) の使用は避けてください どうしても必要な場合を除きます。データ型が属性に合わせてサイズ設定されていることを確認してください。 CHAR の場合 列は既に適切なサイズになっています。次のスクリプトを使用して生成します ALTER TABLE ステートメント:

    SELECT  'ALTER TABLE ' +
            QUOTENAME(TABLE_SCHEMA) + '.' +
            QUOTENAME(TABLE_NAME) +
            ' ALTER COLUMN ' +
            QUOTENAME(COLUMN_NAME) +
            ' NVARCHAR(' +
            CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR(4)) + ');'
    FROM    INFORMATION_SCHEMA.COLUMNS
    WHERE   DATA_TYPE = 'char';
    

    これは ALTER TABLE ステートメントのみを生成することに注意してください。データ型を変更するには、結果をコピーして新しいタブで実行する必要があります。



    1. ClusterControl 1.5-自動バックアップ検証、バックアップとクラウド統合からスレーブを構築

    2. 日付に基づいてフィールドの最大値を取得し、他のフィールドも取得するにはどうすればよいですか?

    3. 常にゼロの結果を返すSQLクエリはありますか?

    4. JSONオブジェクトの配列であるrailsフィールド?