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] #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