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

SQL :i klausul i lagret procedure:hvordan sendes værdier

For SQL Server 2005, tjek Erland Sommarskogs fremragende Arrays and Lists in SQL Server 2005-artikel, som viser nogle teknikker, hvordan man håndterer lister og arrays i SQL Server 2005 (han har også en anden artikel til SQL Server 2000).

Hvis du kunne opgradere til SQL Server 2008, kan du bruge den nye funktion kaldet "table valued parameter":

Først skal du oprette en brugerdefineret tabeltype

CREATE TYPE dbo.MyUserIDs AS TABLE (UserID INT NOT NULL)

For det andet skal du bruge denne tabeltype i din lagrede procedure som en parameter:

CREATE PROC proc_GetUsers @UserIDTable MyUserIDs READONLY 
AS
SELECT * FROM dbo.Users
    WHERE userid IN (SELECT UserID FROM @UserIDTable)

Se detaljer her.

Marc



  1. MySQL-parametriserede forespørgsler

  2. Fejl 1022 - Kan ikke skrive; dublet nøgle i tabel

  3. Tricks til kontinuerlig forbedring af databaseovervågning

  4. Er det vigtigt at lukke mysql-forbindelsen?