63

Microsoft SQL Serverの特定の序数位置にあるテーブルに列を追加することは可能ですか?

たとえば、テーブルには常に各テーブル定義の「終わり」にCreatedOn、CreatedBy、LastModifiedOn、LastModifiedBy列がありますか?これらの列の上にあるSSMSに新しい列を表示したいと思います。

データベースのすべての変更をスクリプト化する場合、テーブルの最後にこの順序を保持する方法はありますか?

参考までに、私はこれが行われるべきかどうかについて炎上戦争を開始しようとはしていません。すぐに縮退するスレッドについて読みたい場合は、次のようにします。

http://www.developersdex.com/sql/message.asp?p=581&r=5014513

4

10 に答える 10

37

元のテーブルのスキーマをミラーリングするが、必要な列順序で一時テーブルを作成してから、元のコンテンツを一時テーブルにコピーする必要があります。オリジナルを削除し、tempの名前を変更します。

これは、SQLManagementStudioが舞台裏で行うことです。

スキーマ同期ツールを使用すると、これらのスクリプトを自動的に生成できます。

于 2009-04-20T19:54:34.730 に答える
30

SQL Server Management Studioに移動し、既存のテーブルを「設計」します。中央に列を挿入し、空の領域を右クリックして、[変更スクリプトの生成... ]を選択します。

次に、それが作成するスクリプトを見てください。基本的に、適切な列順序で一時テーブルを作成し、元のテーブルからデータを挿入し、元のテーブルを削除して、一時テーブルの名前を変更します。これはおそらくあなたがする必要があることです。

ここに画像の説明を入力してください

変更スクリプトの作成を許可するには、このオプションのチェックを外す必要がある場合もあります

ここに画像の説明を入力してください

于 2009-04-20T19:56:59.497 に答える
5

私の知る限り、列の順序を変更する既知の方法はありません。舞台裏では、SQLManagementStudioはJoseBasilioが言ったことを実行します。また、大きなテーブルがある場合は、このように列の順序を変更することは実用的ではありません。

「ビュー」を使用できます。SQLビューを使用すると、テーブルの列の変更に影響されることなく、任意の順序を使用できます。

于 2009-04-20T20:01:31.263 に答える