Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Trystan
Frequent Visitor

Alternative to Identity columns in Warehouse

Hello,

What is an alternative way to generate an identity column when using a Warehouse?

 

Trystan_0-1693453963958.png

 

Thanks.

 

 

 

1 ACCEPTED SOLUTION
puneetvijwani
Resolver IV
Resolver IV

@Trystan  you can use ROW_NUMBER() to mannually generate them via sql queries and add the data in your table

Ps: If my response helped, kindly select it as the solution. Your kudos are greatly appreciated!

View solution in original post

3 REPLIES 3
mikeburek
Advocate II
Advocate II

Just an interesting note, as of now, you can create temporary tables with an identity column. Not sure when that started.

 

DROP TABLE IF EXISTS #tempTable
CREATE TABLE #tempTable (a INT IDENTITY (1, 1), b int)
INSERT INTO #tempTable (b) VALUES (1)
INSERT INTO #tempTable (b) VALUES (1)
INSERT INTO #tempTable (b) VALUES (1)
INSERT INTO #tempTable (b) VALUES (2), (2), (2), (2)
INSERT INTO #tempTable 
SELECT 3 FROM #tempTable 

SELECT * FROM #tempTable

 

--------------------

 

But, as of now, you cannot use a permanent table in the same query as a temporary table, so you cannot additionally try to insert this temporary table into a permanent table.

 

Does not work:

DROP TABLE IF EXISTS permanentTable
CREATE TABLE permanentTable (a INT, b INT)
INSERT INTO dbo.permanentTable (a, b)
SELECT a, b FROM #tempTable

Error: Msg 15816, Level 16, State 3, Line 17
The query references an object that is not supported in distributed processing mode.

mikeburek
Advocate II
Advocate II

Adding a note from the future:
There is now a full example of this workaround on Microsoft Learn / Documentation:
https://learn.microsoft.com/en-us/fabric/data-warehouse/generate-unique-identifiers

 

puneetvijwani
Resolver IV
Resolver IV

@Trystan  you can use ROW_NUMBER() to mannually generate them via sql queries and add the data in your table

Ps: If my response helped, kindly select it as the solution. Your kudos are greatly appreciated!

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Jan NL Carousel

Fabric Community Update - January 2025

Find out what's new and trending in the Fabric community.