jak zapisac do zmiennej wynik zapytania sql??

0

Witam!
Potrzebuję pomocy, mianowicie piszę procedurę i chcę coś takiego

create procedure xxx
(
@zmienna1 as varchar(10)
,@zmienna3 as int
,@zmienna4 as int)
as
begin
declare @zmienna2

@zmienna2='tabela' + @zmienna4 +'new'

select @zmienna1 from @zmienna2 where @zmienna3

OPIS:
@zmienna4 to np numer tabeli przyjkład takiej tabeli to np. tabela3new.

Ma ktos pomysl czy mam jeszcze jakos to opisac o co mi chodzi dokladniej?

0

Zakladajac ze zapytanie zwroci jeden rekord:

select @twojazmienna = nazwa_kolumny from tabela
1

Pisane trochę na kolanie. Sprawdź.


declare 
@SQL VARCHAR(MAX),  @zmienna2 Varchar(100);

SET @zmienna2='tabela' + @zmienna4 +'new' ;
SET @SQL = 'select '+@zmienna1+' from '+@zmienna2+' where '+@zmienna3 +';';


EXEC(@SQL);

 
0

' SELECT @twojazmienna = nazwa_kolumny FROM tabela'

a jakbym chcial zeby nazwa_kolumny i tabela były zachowane pod zmiennymi? to nie moge zrobic tak

SELECT @twojazmienna = @nazwa_kolumny FROM @tabela
prawda?

0

To co wyżej podałem to dynamiczny sql generowany ze stringa. Budujesz go przy "SET @sql=" dalej wstawiasz dowolny string. Przebudowa na zapytanie odbywa się dopiero przy EXEC(@sql).

Czyli możesz złożyć zapytanie z dowolnych zmiennych, ponieważ tworzysz ciąg znaków. Dopiero na końcu musi się to zgadzać składniowo z MSSQL aby w ogóle się wykonało.

0

ok, a jak uzywać pozniej tego wyniku z exec'a? bo np
-taki exec moze mi zwrocic jakas liczbę , wiec jak zapisac wynik tego d okolejnej zmiennej?
-albo takie exec moze mi zwrocic jakąś nową tabele wiec jak pozniej go zawrzec w np tym: SELECT cos FROM wynik_tego_exec'a??

wybacz jesli pytam o banały ale ciezko mi to zawszec w kodzie :/

0

dzieki wielkie Panie, udalo sie metoda prob i bledów i oczywiscie Waszej pomocy!

1 użytkowników online, w tym zalogowanych: 0, gości: 1