sql >> データベース >  >> Database Tools >> SSMS

データベース全体の一部の列の名前を変更するスクリプトを生成するクエリを作成する

    sp_renameを使用して、テーブル列の名前を変更することは難しくありませんが 、参照ビューとストアドプロシージャを変更することは、ツールの助けがなければ簡単ではありません。

    以下のT-SQLは、小文字で始まるすべての列の名前を変更するスクリプトを生成します。ただし、強制された依存関係(スキーマにバインドされたオブジェクトなど)が存在する場合に名前変更が失敗し、ビューやプロシージャを処理しないという点で脆弱です。 et。 al。

    SELECT 
          N'EXEC sp_rename ''' 
        + QUOTENAME(s.name) + N'.' + QUOTENAME(t.name) + N'.' + QUOTENAME(c.name) 
        + ''', ''' + UPPER(LEFT(c.name, 1)) + SUBSTRING(c.name,2,127) + ''', ''COLUMN'';'
    FROM sys.schemas AS s
    JOIN sys.tables AS t ON t.schema_id = s.schema_id
    JOIN sys.columns AS c ON c.object_id = t.object_id
    WHERE 
        LEFT(c.name, 1) COLLATE Latin1_General_CS_AS <> UPPER(LEFT(c.name, 1)) COLLATE Latin1_General_CS_AS
        AND t.is_ms_shipped = 0;
    

    SSDT 、Visual Studio 2019(無料のCommunity Editionを含む)に含まれています。新しいSQLServerデータベースプロジェクトを作成し、既存のデータベースをインポートし、[リファクタリング]-> [名前の変更]オプションを使用して列の名前を変更してから、ターゲットデータベースに対してプロジェクトを公開します。公開には、変更をすぐに適用したり、スクリプトを生成したりするオプションがあります。スクリプトには、すべての参照オブジェクトの列名を変更するのと同様に、列の名前変更用のDDLが含まれます。

    ビューやプロシージャなどで列が不要な名前でエイリアス化されている場合は、それらのエイリアスも変更する必要があります。




    1. データベースバックアップリターンのインポート#1064

    2. すべてのリモートユーザーにSSLを要求する方法

    3. SQL Server Management Studioでは、複数の主キーに対して複数の外部キーを作成できません

    4. このテーブルには一意の列が含まれていません。グリッド編集、チェックボックス、編集、コピー、および削除機能は使用できません