Próbuję ustawić zmienną z zapytania SQL:
declare @ModelID uniqueidentifer
Select @ModelID = select modelid from models
where areaid = 'South Coast'
Oczywiście nie robię tego dobrze, ponieważ to nie działa. Czy ktoś może zaproponować rozwiązanie?
Dzięki!
sql
sql-server
tsql
Mr Cricket
źródło
źródło
Odpowiedzi:
Używając WYBIERZ:
Za pomocą SET:
Zobacz to pytanie, aby zobaczyć różnicę między użyciem SELECT i SET w TSQL .
Ostrzeżenie
Jeśli ta instrukcja select zwraca wiele wartości (złe na początek):
SELECT
do zmiennej przypisywana jest ostatnia zwracana wartość (jak powiedział womp), bez żadnego błędu lub ostrzeżenia (może to powodować błędy logiczne)SET
wystąpi błądźródło
Jeśli instrukcja select zwraca wiele wartości, do zmiennej przypisywana jest ostatnia zwracana wartość.
Aby uzyskać informacje na temat używania instrukcji SELECT ze zmiennymi: http://msdn.microsoft.com/en-us/library/aa259186%28SQL.80%29.aspx
źródło
źródło
Wolę po prostu ustawić go z deklaracji
źródło
Użyj,
TOP 1
jeśli zapytanie zwraca wiele wierszy.źródło
Możesz tego użyć, ale pamiętaj, że zapytanie daje 1 wynik, wiele wyników wyrzuci wyjątek.
Inny sposób:
źródło
W takim przypadku, jeśli zwrócono dwa lub więcej wyników, wynik jest ostatnim rekordem. Pamiętaj o tym, jeśli możesz zwrócić jeszcze dwa rekordy, ponieważ możesz nie zobaczyć oczekiwanego wyniku.
źródło
Istnieją trzy podejścia:
Poniżej kwerendy szczegółowo zalety i wady każdego z nich:
źródło
Aby przypisać zmienne za pomocą SQL, wybierz najlepszą praktykę, jak pokazano poniżej
JEŚLI musisz przypisać więcej niż jedną zmienną w jednym wierszu, możesz użyć tego samego WYBIERZ W
źródło