Skip to content

Commit 56b5c90

Browse files
committed
Database_Upd - collation fix
Fix collation issue, changing temp table to table variable. Fix is done this way as column is SQL_VARIANT. #1548
1 parent a80c779 commit 56b5c90

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

DBADashDB/dbo/Stored Procedures/Databases_Upd.sql

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
@SnapshotDate DATETIME2(2)
55
)
66
AS
7+
SET XACT_ABORT ON
8+
SET NOCOUNT ON
79
DECLARE @Ref VARCHAR(30)='Databases'
810
IF NOT EXISTS(SELECT 1 FROM dbo.CollectionDates WHERE SnapshotDate>=@SnapshotDate AND InstanceID = @InstanceID AND Reference=@Ref)
911
BEGIN
@@ -20,14 +22,14 @@ BEGIN
2022
NewValue SQL_VARIANT NULL,
2123
ChangeDate DATETIME2(2) NOT NULL
2224
);
23-
CREATE TABLE #OldSettings(
25+
DECLARE @OldSettings TABLE(
2426
DatabaseID INT NOT NULL,
2527
Setting sysname NOT NULL,
2628
Value SQL_VARIANT NULL,
2729
is_in_standby BIT NULL
2830
);
2931
/* Capture old settings before update */
30-
INSERT INTO #OldSettings
32+
INSERT INTO @OldSettings
3133
(
3234
DatabaseID,
3335
Setting,
@@ -316,15 +318,15 @@ BEGIN
316318
IF @@ROWCOUNT>0
317319
BEGIN
318320
INSERT INTO #History(DatabaseID,Setting,OldValue,NewValue,ChangeDate)
319-
SELECT o.DatabaseID,o.Setting,o.value,n.value,@SnapshotDate AS ChangeDate
320-
FROM #OldSettings o
321+
SELECT o.DatabaseID,o.Setting,o.Value,n.Value,@SnapshotDate AS ChangeDate
322+
FROM @OldSettings o
321323
JOIN dbo.DatabaseSettingsUnpivot_Get(@InstanceID) n ON o.DatabaseID = n.DatabaseID AND o.Setting = n.Setting
322-
WHERE NOT EXISTS(SELECT o.value
324+
WHERE NOT EXISTS(SELECT o.Value
323325
INTERSECT
324326
SELECT n.Value)
325327
AND NOT (o.Setting<>'is_read_only' AND n.is_in_standby=1 AND n.Value=1)
326328
AND NOT (o.Setting<>'is_read_only' AND o.is_in_standby=1 AND o.Value=1)
327-
AND NOT (o.Setting='state' AND n.value IN(0,1,2,3) AND o.value IN(0,1,2,3));
329+
AND NOT (o.Setting='state' AND n.Value IN(0,1,2,3) AND o.Value IN(0,1,2,3));
328330
END
329331

330332
/* Handle databases being re-created or restored */

0 commit comments

Comments
 (0)