CREATE SEQUENCE id AS INTEGER START WITH 1 INCREMENT BY 1;
WITH source (Id, SomeColumn) AS
(
SELECT NEXT VALUE FOR id, 'some value 1'
UNION
SELECT NEXT VALUE FOR id, 'some value 2'
)
SELECT * FROM source;
DROP SEQUENCE id;
を選択それは、次のエラーがスローされます。SQL Serverが
NEXT VALUE FOR function is not allowed in check constraints, default objects, computed columns, views, user-defined functions, user-defined aggregates, user-defined table types, sub-queries, common table expressions, derived tables or return statements.
なぜNEXT VALUE FOR
機能がunions
では動作しませんか? 良い選択肢は何ですか?
私は同様のCTEを使用して、マージステートメントを使用してデフォルト値を持つテーブルをシードします。手動で数値を入力するのを避けようとしています。
私はここに同様の問題にアレックスのコメントやリンクに基づいてUNION SELECTのID ++
これはどのように「機能しませんか?詳細をお知らせください。 –
ROW_NUMBER()ウィンドウ関数を考慮しましたか?このようなものをお探しですか?http://stackoverflow.com/questions/37287657/sql-server-2012-create-a-new-table-with-instant-1000-record-that-contains-thre/37288556# 37288556? – Alex
この古典的なソリューションはあなたに適していますか? '何らかの値2' を選択 someValueの UNION AS表#H(IDのINTのIDENTITY(1,1)、someValueのVARCHAR(255))#H(someValueの)INTO INSERT SELECT '何らかの値1' を作成 SELECT * FROM#h H –