Andy Warren

I'm Andy Warren, currently a SQL Server trainer with End to End Training. Over the past few years I've been a developer, DBA, and IT Director. I was one of the original founders of SQLServerCentral.com and helped grow that community from zero to about 300k members before deciding to move on to other ventures.

Blogs

FREE Window Functions Course (This Month Only!)

By

Want to really level up your SQL game? I mean, go from good to great? This March...

Tally Table Alternatives: #SQLNewBlogger

By

We published an article recently at SQL Server Central on Tally Tables in Fabric...

Real-Time Intelligence in Microsoft Fabric

By

In today’s data-driven world, organizations need the ability to analyze and act on data...

Read the latest Blogs

Forums

Dynamic T-SQL Script Parameterization Using Python

By omu

Comments posted to this topic are about the item Dynamic T-SQL Script Parameterization Using...

Solutions for Environmental Testing | Fare Labs

By farelabs

The state-of-the-art FARE Labs Environmental Testing Laboratory provides a comprehensive variety of testing services...

Database restoration slowed down abnormally.

By JasonO

I'm running some restoration activity as part of a rehearsal to prepare for an...

Visit the forum

Question of the Day

Inserting Sequences

I created a new sequence in SQL Server 2022 with this code.

CREATE SEQUENCE myseqtest START WITH 1 INCREMENT BY 1;
GO
I want to use this to insert some data from another table into a new table with this sequence. Which of these queries shows the way to do this efficiently?
-- 1
INSERT dbo.NewMonthSales
  (SaleID, saleyear, salemonth, currSales)
SELECT
  NEXT VALUE FOR myseqtest
, ms.saleyear
, ms.salemonth
, ms.currMonthSales
FROM dbo.MonthSales AS ms;
GO

-- 2
INSERT dbo.NewMonthSales
  (SaleID, saleyear, salemonth, currSales)
SELECT
  NEXT VALUE 
, ms.saleyear
, ms.salemonth
, ms.currMonthSales
FROM dbo.MonthSales AS ms, myseqtest;
GO

--3 
DECLARE mycurs CURSOR FOR SELECT
 ms.saleyear
, ms.salemonth
, ms.currMonthSales
FROM dbo.MonthSales AS ms

DECLARE @yr INT, @mn INT, @sales NUMERIC(10,2)

FETCH NEXT FROM mycurs INTO @yr, @mn, @sales
WHILE @@FETCH_STATUS = 0
 BEGIN
   INSERT dbo.NewMonthSales
    (SaleID, saleyear, salemonth, currSales)
    SELECT
      NEXT VALUE FOR myseqtest
    , @yr
    , @mn
    , @sales
   FETCH NEXT FROM mycurs INTO @yr, @mn, @sales
 END

See possible answers