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

Как мога да повторя набор от записи в съхранена процедура?

Трябва да създадете курсор, за да преминете през набора записи.

Примерна таблица:

CREATE TABLE Customers
(
    CustomerId INT NOT NULL PRIMARY KEY IDENTITY(1,1)
    ,FirstName Varchar(50) 
    ,LastName VARCHAR(40)
)

INSERT INTO Customers VALUES('jane', 'doe')
INSERT INTO Customers VALUES('bob', 'smith')

Курсор:

DECLARE @CustomerId INT, @FirstName VARCHAR(30), @LastName VARCHAR(50)

DECLARE @MessageOutput VARCHAR(100)

DECLARE Customer_Cursor CURSOR FOR 
    SELECT CustomerId, FirstName, LastName FROM Customers


OPEN Customer_Cursor 

FETCH NEXT FROM Customer_Cursor INTO
    @CustomerId, @FirstName, @LastName

WHILE @@FETCH_STATUS = 0
BEGIN
    SET @MessageOutput = @FirstName + ' ' + @LastName



    RAISERROR(@MessageOutput,0,1) WITH NOWAIT

    FETCH NEXT FROM Customer_Cursor INTO
    @CustomerId, @FirstName, @LastName
END
CLOSE Customer_Cursor
DEALLOCATE Customer_Cursor

Ето връзка към MSDN за това как да ги създадете.

http://msdn.microsoft.com/en-us/library/ms180169 .aspx

Ето защо използвах Raise Error вместо PRINT за извеждане.
http://structuredsight.com/2014/11/24/wait-wait-dont-tell-me-on-second-thought/



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

  2. Как да разберете към коя таблица принадлежи заключване на страница

  3. sql заявка - Получете разликата във времето между плъзгане навътре - плъзгане навън за служител

  4. Как да коригирате „Сървърът не е конфигуриран за ДОСТЪП ДО ДАННИ“ в SQL Server

  5. На клиент с IP адрес не е разрешен достъп до сървърната база данни Azure SQL