From dd1f908f31380bc522f576fc622c20387895f125 Mon Sep 17 00:00:00 2001 From: Juan Jose Montes de Oca Arbos Date: Wed, 15 Mar 2023 13:42:54 -0300 Subject: [PATCH 1/2] #23 Bugfix: @PopulateIdentityColumn = 1 not working with tables without identity columns --- GenerateInsert.sql | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/GenerateInsert.sql b/GenerateInsert.sql index 6d353d6..91fc226 100644 --- a/GenerateInsert.sql +++ b/GenerateInsert.sql @@ -152,6 +152,7 @@ DECLARE @TableData table (TableRow nvarchar(max)); DECLARE @Results table (TableRow nvarchar(max)); DECLARE @TableRow nvarchar(max); DECLARE @RowNo int; +DECLARE @HasIdentityColumn bit; IF PARSENAME(@ObjectName,3) IS NOT NULL OR PARSENAME(@ObjectName,4) IS NOT NULL @@ -398,8 +399,14 @@ END IF @PopulateIdentityColumn = 1 BEGIN - INSERT INTO @Results - SELECT N'SET IDENTITY_INSERT ' + COALESCE(@TargetObjectName,@ObjectName) + N' ON' + IF EXISTS (select 1 from sys.columns where object_id = OBJECT_ID(@ObjectName) AND is_identity = 1) + SET @HasIdentityColumn = 1 + ELSE + SET @HasIdentityColumn = 0 + + IF @HasIdentityColumn = 1 + INSERT INTO @Results + SELECT N'SET IDENTITY_INSERT ' + COALESCE(@TargetObjectName,@ObjectName) + N' ON' END IF @GenerateSingleInsertPerRow = 1 @@ -472,8 +479,9 @@ END IF @PopulateIdentityColumn = 1 BEGIN - INSERT INTO @Results - SELECT N'SET IDENTITY_INSERT ' + COALESCE(@TargetObjectName,@ObjectName) + N' OFF' + IF @HasIdentityColumn = 1 + INSERT INTO @Results + SELECT N'SET IDENTITY_INSERT ' + COALESCE(@TargetObjectName,@ObjectName) + N' OFF' END IF @FormatCode = 1 From 3ec2314a87a495102620fd1c5b3082e276fe8ee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Jos=C3=A9=20Montes=20de=20Oca=20Arb=C3=B3s?= Date: Wed, 4 Feb 2026 16:19:21 -0300 Subject: [PATCH 2/2] #25 Sometimes unsorted result --- GenerateInsert.sql | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/GenerateInsert.sql b/GenerateInsert.sql index 91fc226..d57376e 100644 --- a/GenerateInsert.sql +++ b/GenerateInsert.sql @@ -149,7 +149,7 @@ SET @ValuesSql = N'VALUES ('; DECLARE @SelectSql nvarchar(max); SET @SelectSql = N'SELECT '; DECLARE @TableData table (TableRow nvarchar(max)); -DECLARE @Results table (TableRow nvarchar(max)); +DECLARE @Results table (Idx BIGINT IDENTITY(1,1), TableRow nvarchar(max)); DECLARE @TableRow nvarchar(max); DECLARE @RowNo int; DECLARE @HasIdentityColumn bit; @@ -510,6 +510,7 @@ BEGIN DECLARE ResultsCursor CURSOR LOCAL FAST_FORWARD FOR SELECT TableRow FROM @Results + ORDER BY Idx FOR READ ONLY ; OPEN ResultsCursor; @@ -550,7 +551,8 @@ BEGIN DEALLOCATE ResultsCursor; END ELSE BEGIN SELECT * - FROM @Results; + FROM @Results + ORDER BY Idx; END END