sql >> Databasteknik >  >> RDS >> Sqlserver

jag behöver en sp för att välja eller uppdatera mina tabeller och för det måste jag ange flera värden för en enda variabel hur kan jag göra det?

Har du funderat på att använda tabellvariabler för att skicka data till en lagrad procedur. Exempel:

Inställningar

CREATE TYPE EmpIdValuesType AS TABLE
  (                     
        [EmpID] [int]NOT NULL
  )

CREATE TABLE Employee
(
  EmpID INT,
  Name varchar(20)
 )

INSERT INTO Employee 
Values
 (1, 'test1'),
 (2, 'test2'),
 (3, 'test3'),
 (4, 'test4'),
 (5, 'test5'),
 (6, 'test6'),
 (7, 'test7');

Create Procedure usp_GetEmployees
(
  @TableVariable EmpIdValuesType READONLY
)
AS
  SELECT *
  FROM Employee
  INNER JOIN @TableVAriable TV
    ON Employee.EmpId = TV.EmpId

Nu kan du infoga rader i en temporär tabellvariabel av typen EmpIdValuesType och skicka variabeln till den lagrade proceduren:

Anropa den lagrade proceduren

DECLARE @empIds AS EmpIdValuesType

INSERT INTO @empIds(EmpID) Values (1), (2), (5)

Exec usp_GetEmployees @empIds;

Och här är resultaten:

SQLFiddle




  1. inkludera Jfactory-klassen i en extern php-fil, Joomla

  2. MySQL:Curdate() vs Now()

  3. Hur TRIM_ORACLE() fungerar i MariaDB

  4. Kopiera användarrättigheter mellan databaser på samma server