Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL :в клауза в съхранената процедура:как да се предават стойности

За SQL Server 2005 вижте отличната статия на Erland Sommarskog за масиви и списъци в SQL Server 2005, която показва някои техники как да се справите със списъци и масиви в SQL Server 2005 (той също има друга статия за SQL Server 2000).

Ако можете да надстроите до SQL Server 2008, можете да използвате новата функция, наречена "параметър с стойност на таблица":

Първо, създайте дефиниран от потребителя тип таблица

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

Второ, използвайте този тип таблица във вашата съхранена процедура като параметър:

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

Вижте подробности тук.

Марк



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Заявка за изброяване на броя на записи във всяка таблица в база данни

  2. Клауза WHERE срещу ON при използване на JOIN

  3. Свързване към SQL Server 2012 с помощта на sqlalchemy и pyodbc

  4. Осигуряване на SQL Server срещу множествено присъединяване

  5. Намерете sql записи, съдържащи подобни низове