挿入関数にインクリメンタル値を追加します。私は次のコードを試したが動作していない。毎回COLUMN1
を1ずつ増やしたいと思います。 COLUMN1
はキー列ではありません。SQL挿入関数(インクリメンタル値を挿入)
@var=0;
INSERT INTO TABLE_A (COLUMN1,COLUMN2,COLUMN3,COLUMN4)
SELECT @var++,COLUMN6,COLUMN7,COLUMN8
FROM TABLE_B;
挿入関数にインクリメンタル値を追加します。私は次のコードを試したが動作していない。毎回COLUMN1
を1ずつ増やしたいと思います。 COLUMN1
はキー列ではありません。SQL挿入関数(インクリメンタル値を挿入)
@var=0;
INSERT INTO TABLE_A (COLUMN1,COLUMN2,COLUMN3,COLUMN4)
SELECT @var++,COLUMN6,COLUMN7,COLUMN8
FROM TABLE_B;
によって増分だろういつでもそれは自動的に表示されます:
ます。またrow_number()
機能を使用することができます
INSERT INTO TABLE_A (COLUMN1,COLUMN2,COLUMN3,COLUMN4)
SELECT
ROW_NUMBER() OVER(ORDER BY(SELECT NULL)) - 1,
COLUMN6,
COLUMN7,
COLUMN8
FROM TABLE_B;
IDENTITY
という列を作成することができます。だから今、あなたが挿入をしながらCOLUMN1
を提供する必要はありません
ALTER TABLE (TABLE_A) ADD NewColumn INT IDENTITY(1,1)
ALTER TABLE (TABLE_A) DROP COLUMN COLUMN1
sp_rename 'TABLE_A.NewColumn', 'COLUMN1', 'COLUMN'
をして、単に
INSERT INTO TABLE_A (COLUMN2,COLUMN3,COLUMN4)
SELECT
COLUMN6,
COLUMN7,
COLUMN8
FROM TABLE_B;
のように実行します。それは既存の列であるなら、あなたはこのようにそれを追加することができます。あなたがCOLUMN1
のためのシーケンシャル値を生成するためにROW_NUMBER
を使用することができ、新しい行がテーブルに挿入され、それが1
がSQL Server 2012で認識されないsp_rename function – user2242558
@ user2242558: - SQL Server 2008として質問にタグを付けました。また、sp_renameもSQL Server 2012でも動作します。https://msdn.microsoft.com/en-in/ライブラリ/ ms188351(v = sql.110).aspx –
間違って2008年を追加しました!そのことについて謝ります! – user2242558
このため。変数にrow_number
を追加します。
@var=0;
INSERT INTO TABLE_A (COLUMN1,COLUMN2,COLUMN3,COLUMN4)
SELECT @var + row_number(),COLUMN6,COLUMN7,COLUMN8
FROM TABLE_B;
ご希望の開始番号として、あなたの変数を初期化。私は携帯から投稿しています。
これが役に立ちます。
ください。あなたの正解についての例を追加する –
しかし、私はユニークな価値が欲しい! 2回目に挿入するとどうなりますか? – user2242558
これはうまくいきません。代わりに 'IDENTITY'カラムを使用してください。 –
あるいは、 '+(SELECT MAX(COLUMN1)FROM TABLE_B)'で '-1'を置き換えてください。しかし、これは同時クエリで問題が発生する可能性があります。 –