sql >> Databasteknik >  >> RDS >> Sqlserver

ställ in en variabel med ett returvärde för en fråga

Om frågan returnerar en skalär resultatuppsättning måste du göra

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

Mycket bättre att använda sp_executesql och OUTPUT parametrar

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. Kör Java-program från Linux-kommandoraden som kräver en extra fil

  2. Bästa metoder för att lagra bankinformation i en databas

  3. Ladda ner en deldatabas från heroku

  4. Databasdesign:EAV-alternativ?