2016-07-11 3 views
0

Wie Festlegen von Wert zu deklarierter Variable in SQL Server.Wie Festlegen von Wert zu deklarierter Variable in SQL Server

DECLARE @V_SEQUENCE INT, @V_SEQUENCENAME NVARCHAR(MAX); 
SET @V_SEQUENCENAME = 'dbo.MYSEQ'; 
EXEC('SELECT @V_SEQUENCE = NEXT VALUE FOR ' + @V_SEQUENCENAME) 
SELECT @V_SEQUENCE 

Hier bin ich erhalte eine Fehlermeldung:

Must declare the scalar variable "@V_SEQUENCE"'

Bitte sagen Sie mir, wie Ergebnis von @V_SEQUENCE zu bekommen.

+0

Wenn Sequenznamen konstant ist, dann brauchen Sie nicht dynamische SQL. –

+0

Sequenzname ist dynamisch, nur zum Beispiel habe ich statischen Namen erwähnt. – Srinivas

Antwort

6

Sie möchten einen Wert aus der Ausführung übergeben. Ich empfehle Ihnen, sp_executesql zu verwenden:

DECLARE @V_SEQUENCE INT, @V_SEQUENCENAME NVARCHAR(MAX), @SQL NVARCHAR(MAX); 
SET @V_SEQUENCENAME = 'dbo.MYSEQ'; 
SELECT @SQL = 'SELECT @V_SEQUENCE = NEXT VALUE FOR ' + @V_SEQUENCENAME; 

EXEC sp_executesql @SQL, N'@V_SEQUENCE INT OUTPUT', @V_SEQUENCE = @V_SEQUENCE OUTPUT; 

SELECT @V_SEQUENCE; 
+0

Danke, Jetzt bekomme ich die erwarteten Ergebnisse. – Srinivas