0

データベースに調査用のピン番号を格納する列があります。現在、番号のリストは 5100 ~ 6674 です。現在の調査のためにこれらのピン番号を保持する必要がありますが、ピン番号の新しいリストを同じ列に追加する必要もあります。作成したクエリが、古いリストに影響を与えずに新しいリストを列に挿入することを確認したいだけです。調査の種類を示す別の列もあります。また、新しいタイプを新しいリストに追加する必要があるため、たとえば、現在、5100 ~ 6674 の範囲のピンのリストがあり、Survey タイプが CLN です。次のリストは、調査タイプが TM の 8100 ~ 8855 の範囲の数値です。私は現在実行中の現在の調査を台無しにしたくないので、それを正しくするための 1 つのショットがあります。そうしないと、大きな混乱が発生します。これが私が思いついたクエリです。

DECLARE @PIN INT
SET @PIN = 8100
WHILE (@PIN <= 8855)
BEGIN
    Insert into Survey (Pin) values (@PIN)
    Select @PIN = @PIN + 1
    from Survey
    where Pin > 6674
END

UPDATE Survey SET Type = 'TM'
WHERE Pin > 6674

助けやアドバイスをありがとう。

4

3 に答える 3

0

このデータを挿入する方法を理解していなくても、あなたが取っているアプローチに問題はありません。PIN が主キーであるかどうかに関係なく、デフォルトで区別され、重複したレコードを挿入することはできません。

特定の日時に何かを台無しにしたことがわかっている場合に備えて、データを作成した時点を記録する列を追加することも検討してください。

于 2013-09-03T18:33:47.107 に答える
0

挿入する数値が少ないため、既存のセットから範囲を選択して定数を追加できます。

INSERT INTO Survey (PIN, Type)
SELECT Pin + 3000, 'TM'
FROM Survey
WHERE Pin BETWEEN 5100 and 5855

MORE 値を挿入する場合は、同じ手法をバッチで使用できます。

于 2013-09-03T18:29:44.763 に答える