8

SQL Server で列を削除せずに計算列を変更する方法を知っている人はいますか? 列を計算列として使用するのをやめて、列に直接データを格納することを開始したいのですが、現在の値を保持したいと考えています。

これは可能ですか?

4

3 に答える 3

10

私が知っていることではありませんが、ここでできることがあります

別の列をテーブルに追加し、その列を計算列の値で更新してから、計算列を削除します

于 2008-09-04T16:30:52.973 に答える
2

列の名前を維持する必要がある場合 (クライアント コードを壊さないようにするため)、列を削除し、同じ名前で格納された列を追加し直す必要があります。単一のトランザクションで (SQLMenace のソリューションの行に沿って) 変更を行うことにより、ダウンタイムなしでこれを行うことができます。ここにいくつかの擬似コードがあります:

取引開始
   計算された列 X をドロップします
   保存された列 X を追加
   古い式を使用して列に入力する
トランザクションをコミットする
于 2008-09-04T17:00:55.070 に答える
1

わかりましたので、これが正しいかどうか見てみましょう。現在計算されている列を取り、それを単純なデータ列にします。通常、これにより列が削除されますが、データを列に保持したい場合があります。

  1. ソース テーブルの主キー列と生成された列で新しいテーブルを作成します。
  2. ソース テーブルから新しいテーブルにデータをコピーします。
  3. ソース テーブルの列を変更します。
  4. データをコピーして戻します。

あなたが何をしても、列を変更するとドロップすると確信しています。この方法は少し複雑ですが、それほど悪くはなく、データを節約できます。

[編集: @SqlMenace の答えははるかに簡単です。:)メナスを呪ってください!! :)]

于 2008-09-04T16:30:40.570 に答える