sql >> Database teknologi >  >> RDS >> Sqlserver

jeg har brug for en sp for at vælge eller opdatere mine tabeller, og for det skal jeg indtaste flere værdier for en enkelt variabel, hvordan kan jeg gøre det?

Har du overvejet at bruge tabelvariable til at overføre data til en lagret procedure. Eksempel:

Opsætning

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 indsætte rækker i en midlertidig tabelvariabel af typen EmpIdValuesType og videregive variablen til den lagrede procedure:

Opkald til den lagrede procedure

DECLARE @empIds AS EmpIdValuesType

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

Exec usp_GetEmployees @empIds;

Og her er resultaterne:

SQLFiddle




  1. vælg * fra tabelnavn, hvor kolonne som ' '

  2. Django Postgres ArrayField aggregering og filtrering

  3. Forskellen mellem PDO->query() og PDO->exec()

  4. Tilføjelse af en identitet til en eksisterende kolonne