2014-11-13 5 views
7

Ich versuche, so etwas wie in SQL Server 2012Wie 'Start mit' der Sequenz gesetzt wird, um Abfrageergebnis in SQL Server auszuwählen?

CREATE SEQUENCE item_seq 
    START WITH (SELECT MAX(i_item_sk) 
    FROM item) 
    INCREMENT BY 1; 

Ist es möglich, zu tun? Was sind die anderen Möglichkeiten, wenn dies nicht möglich ist? Können wir es so machen wie wir es in PostgreSQL machen (siehe unten)?

create sequence item_seq 
select setval('item_seq', (select max(i_item_sk)+1 from item), false); 

Ich würde weiterhin diese Sequenzvariable in Kettle 'Add Sequence' Schritt verwenden.

Antwort

4

Es sieht nicht so aus, als könnten Sie eine variable Menge in der Syntax deklarieren. Sie können es jedoch in eine EXEC Anweisung wie folgt einbetten:

DECLARE @max int; 
SELECT @max = MAX(i_item_sk) 
    FROM item 

exec('CREATE SEQUENCE item_seq 
    START WITH ' + @max + 
' INCREMENT BY 1;') 

select * from sys.sequences 
Verwandte Themen