Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

ustawić zmienną ze zwracaną wartością zapytania

Jeśli zapytanie zwraca zestaw wyników skalarnych, musisz to zrobić

DECLARE @VAR INT

DECLARE @Result TABLE
(
C INT
)

DECLARE @SQl NVARCHAR(MAX)
SET @SQl = 'SELECT 1'

INSERT INTO @Result
EXEC(@SQl)

SELECT @VAR = C FROM @Result

Znacznie lepiej jest użyć sp_executesql i OUTPUT parametry

DECLARE @VAR INT

DECLARE @SQl NVARCHAR(MAX)
SET @SQl = 'SELECT @out = 1'

EXEC sp_executesql @SQl, N'@out int output', @out = @VAR OUTPUT

SELECT @VAR 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL 2005 — Wyjątkowo powolne zapytania dotyczące serwera połączonego z Oracle

  2. Zaktualizuj wiele tabel w SQL Server za pomocą INNER JOIN

  3. Pobierz pierwszy/ostatni wiersz n-tej kolejnej grupy

  4. Konwersja nie powiodła się podczas konwertowania wartości varchar „simple” na typ danych int

  5. Popraw typy parametrów dla zapytań wybierających, które używają funkcji o wartościach z tabeli