Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Máy chủ SQL CHO TỪNG vòng lặp

Đây là một tùy chọn với một biến bảng:

DECLARE @MyVar TABLE(Val DATETIME)
DECLARE @I INT, @StartDate DATETIME
SET @I = 1
SET @StartDate = '20100101'

WHILE @I <= 5
BEGIN
    INSERT INTO @MyVar(Val)
    VALUES(@StartDate)

    SET @StartDate = DATEADD(DAY,1,@StartDate)
    SET @I = @I + 1
END
SELECT *
FROM @MyVar

Bạn có thể làm tương tự với bảng tạm thời:

CREATE TABLE #MyVar(Val DATETIME)
DECLARE @I INT, @StartDate DATETIME
SET @I = 1
SET @StartDate = '20100101'

WHILE @I <= 5
BEGIN
    INSERT INTO #MyVar(Val)
    VALUES(@StartDate)

    SET @StartDate = DATEADD(DAY,1,@StartDate)
    SET @I = @I + 1
END
SELECT *
FROM #MyVar

Bạn nên cho chúng tôi biết mục tiêu chính của bạn là gì, như @JohnFx đã nói, điều này có thể được thực hiện theo cách khác (hiệu quả hơn).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. băm một hàng SQL?

  2. Khái niệm thiết kế cơ sở dữ liệu với SQL Server Management Studio (SSMS) Phần 1

  3. Tham gia một bàn với chính nó

  4. ngắt dòng bị mất trong máy chủ sql

  5. 3 cách để lấy kiểu dữ liệu của cột trong SQL Server (T-SQL)