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

SQL Server DLA KAŻDEJ PĘTLI

Oto opcja ze zmienną tabeli:

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

Możesz zrobić to samo z tabelą tymczasową:

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

Powinieneś nam powiedzieć, jaki jest twój główny cel, jak powiedział @JohnFx, prawdopodobnie można to zrobić w inny (bardziej wydajny) sposób.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. konwersja znacznika czasu Epoch na serwer sql (format czytelny dla człowieka)

  2. Jak poprawić wydajność filtrowania daty i godziny w programie SQL Server?

  3. przy użyciu zmiennej Table z sp_executesql

  4. Kiedy lepiej przechowywać flagi jako maskę bitową zamiast używać tabeli asocjacyjnej?

  5. SQL Server:CREATE ASSEMBLY dla zestawu "Test" nie powiodło się, ponieważ zestaw "Test" jest zniekształcony lub nie jest czystym zestawem .NET.