sql >> Databáze >  >> RDS >> Sqlserver

Potřebuji sp k výběru nebo aktualizaci mých tabulek, a proto musím zadat více hodnot pro jednu proměnnou, jak to mohu udělat?

Přemýšleli jste o použití proměnných tabulky k předání dat do uložené procedury. Příklad:

Nastavení

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

Nyní můžete vložit řádky do dočasné proměnné tabulky typu EmpIdValuesType a předat proměnnou do uložené procedury:

Volání uložené procedury

DECLARE @empIds AS EmpIdValuesType

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

Exec usp_GetEmployees @empIds;

A tady jsou výsledky:

SQLFiddle




  1. Jaké jsou výhody databáze prodejů?

  2. Jak generovat data v MySQL?

  3. Jak zkrátit TABLE v Oracle

  4. Bezpečnostní otázka PHP a MySQL Salt