Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Procedura składowana wywołań SQL dla każdego wiersza bez użycia kursora

Ogólnie rzecz biorąc zawsze szukam podejścia opartego na zestawach (czasami kosztem zmiany schematu).

Jednak ten fragment ma swoje miejsce.

-- Declare & init (2008 syntax)
DECLARE @CustomerID INT = 0

-- Iterate over all customers
WHILE (1 = 1) 
BEGIN  

  -- Get next customerId
  SELECT TOP 1 @CustomerID = CustomerID
  FROM Sales.Customer
  WHERE CustomerID > @CustomerId 
  ORDER BY CustomerID

  -- Exit loop if no more customers
  IF @@ROWCOUNT = 0 BREAK;

  -- call your sproc
  EXEC dbo.YOURSPROC @CustomerId

END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korzystanie z SolarWinds Serv-U w systemie Linux z bazą danych uwierzytelniania SQL Server

  2. Błąd konwersji danych zbiorczego ładowania (niezgodność typu lub nieprawidłowy znak dla określonej strony kodowej) dla wiersza 1, kolumny 4 (rok)

  3. Przedstawiamy nową funkcję — raporty Spotlight Cloud

  4. Konwertuj „datetime” na „datetimeoffset” w SQL Server (przykłady T-SQL)

  5. Uzyskaj wiele wartości w kursorze SQL Server