fix: support database collation in shadow scripts

This commit is contained in:
zgw
2026-09-04 11:47:01 +08:00
parent 4de09dd693
commit b940bf0eb1
3 changed files with 25 additions and 8 deletions

View File

@@ -81,7 +81,7 @@ BEGIN
FROM sys.objects object
LEFT JOIN @expected_v3 expected
ON expected.object_name = N'alg.' + object.name
AND expected.object_type = object.type
AND expected.object_type = object.type COLLATE DATABASE_DEFAULT
WHERE object.schema_id = SCHEMA_ID(N'alg')
AND object.is_ms_shipped = 0
AND object.parent_object_id = 0
@@ -95,7 +95,7 @@ BEGIN
LEFT JOIN sys.objects object
ON object.schema_id = SCHEMA_ID(N'alg')
AND N'alg.' + object.name = expected.object_name
AND object.type = expected.object_type
AND object.type COLLATE DATABASE_DEFAULT = expected.object_type
WHERE object.object_id IS NULL
)
THROW 51033, 'FT546 shadow upgrade refused: expected object is missing or has wrong type', 1;
@@ -114,7 +114,7 @@ IF EXISTS (
FROM sys.objects object
LEFT JOIN @expected_v2 expected
ON expected.object_name = N'alg.' + object.name
AND expected.object_type = object.type
AND expected.object_type = object.type COLLATE DATABASE_DEFAULT
WHERE object.schema_id = SCHEMA_ID(N'alg')
AND object.is_ms_shipped = 0
AND object.parent_object_id = 0
@@ -128,7 +128,7 @@ IF EXISTS (
LEFT JOIN sys.objects object
ON object.schema_id = SCHEMA_ID(N'alg')
AND N'alg.' + object.name = expected.object_name
AND object.type = expected.object_type
AND object.type COLLATE DATABASE_DEFAULT = expected.object_type
WHERE object.object_id IS NULL
)
THROW 51036, 'FT546 shadow upgrade refused: expected object is missing or has wrong type', 1;
@@ -1332,7 +1332,7 @@ BEGIN TRY
FROM sys.objects object
LEFT JOIN @expected_v3_post expected
ON expected.object_name = N'alg.' + object.name
AND expected.object_type = object.type
AND expected.object_type = object.type COLLATE DATABASE_DEFAULT
WHERE object.schema_id = SCHEMA_ID(N'alg')
AND object.is_ms_shipped = 0
AND object.parent_object_id = 0
@@ -1346,7 +1346,7 @@ BEGIN TRY
LEFT JOIN sys.objects object
ON object.schema_id = SCHEMA_ID(N'alg')
AND N'alg.' + object.name = expected.object_name
AND object.type = expected.object_type
AND object.type COLLATE DATABASE_DEFAULT = expected.object_type
WHERE object.object_id IS NULL
)
THROW 51033, 'FT546 shadow upgrade refused: expected object is missing or has wrong type', 1;