Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 16 additions & 6 deletions GenerateInsert.sql
Original file line number Diff line number Diff line change
Expand Up @@ -149,9 +149,10 @@ 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;

IF PARSENAME(@ObjectName,3) IS NOT NULL
OR PARSENAME(@ObjectName,4) IS NOT NULL
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -502,6 +510,7 @@ BEGIN
DECLARE ResultsCursor CURSOR LOCAL FAST_FORWARD FOR
SELECT TableRow
FROM @Results
ORDER BY Idx
FOR READ ONLY
;
OPEN ResultsCursor;
Expand Down Expand Up @@ -542,7 +551,8 @@ BEGIN
DEALLOCATE ResultsCursor;
END ELSE BEGIN
SELECT *
FROM @Results;
FROM @Results
ORDER BY Idx;
END

END
Expand Down