Michał Patrzałek ETL developer
Temat: dynamic TSQL
Witam,Pisząc procedurę potrzebna była mi zmienna przechowywująca rezultat wykonanego dynamicznego kodu sql. Otóż taki poniższy kod, nie przypisuje wyniku zapytania dynamicznego zmiennej @retval, a powinien. Szperałem troche w internecie i to wlasnie powinno byc dobrym rozwiazaniem. W przypadku odczytania wartośi zmiennej @retval okazuje się iz posiada ona wartość null. Zastanawiający jest fakt tymbardziej iż już kilka razy natknąłem się na takie rozwiązanie, które powinno z zasady działać? Może ktoś ma jakiś pomysł, lub zetknął się z taką sytuacją?
declare
@cmd nvarchar(max),
@retval int,
@ParmDefinition nvarchar(500),
@nazwa_tabeli nvarchar(100)
select @nazwa_tabeli=N'test_table'
SET @ParmDefinition = N'@retvalOUT int OUTPUT';
select @cmd=N'select max(id) from '+@nazwa_tabeli
EXECUTE sp_executeSQL @cmd,@ParmDefinition,@retvalOUT=@retval OUTPUT
select @retval
go
Z góry dziękuję za zainteresowanie się tematem :)
Pozdrawiam.