Jun 24, 2026, 10:39 AM

This commit is contained in:
Paweł Domański
2026-06-24 08:39:10 +00:00
parent 49048fe9b6
commit 3921804338
+27
View File
@@ -38,9 +38,20 @@ DECLARE colCur CURSOR LOCAL FAST_FORWARD FOR
ColumnDataType
FROM DBO.TEMP2
WHERE ObjectType = 'TABLE';
PARSENAME(TMP.ObjectName, 2) AS SchemaName,
PARSENAME(TMP.ObjectName, 1) AS TableName,
TMP.ColumnName,
TMP.ColumnDataType,
c.is_nullable
FROM DBO.TEMP2 TMP
INNER JOIN sys.schemas s ON s.name = PARSENAME(TMP.ObjectName, 2)
INNER JOIN sys.tables t ON t.schema_id = s.schema_id AND t.name = PARSENAME(TMP.ObjectName, 1)
INNER JOIN sys.columns c ON c.object_id = t.object_id AND c.name = TMP.ColumnName
WHERE TMP.ObjectType = 'TABLE';
OPEN colCur;
FETCH NEXT FROM colCur INTO @Schema, @Table, @Column, @OldDataType;
FETCH NEXT FROM colCur INTO @Schema, @Table, @Column, @OldDataType, @IsNullable;
WHILE @@FETCH_STATUS = 0
BEGIN
@@ -63,6 +74,8 @@ BEGIN
WHERE s.name = @Schema
AND t.name = @Table
AND c.name = @Column;
-- Nullability is now pre-fetched directly in the cursor declaration.
-- Preserving NOT NULL so PK columns do not become nullable.
-- ? Build ALTER COLUMN with correct nullability
SET @AlterSQL = 'ALTER TABLE ' + QUOTENAME(@Schema) + '.' + QUOTENAME(@Table) +
@@ -111,6 +124,7 @@ BEGIN
END CATCH
FETCH NEXT FROM colCur INTO @Schema, @Table, @Column, @OldDataType;
FETCH NEXT FROM colCur INTO @Schema, @Table, @Column, @OldDataType, @IsNullable;
END
CLOSE colCur;
@@ -129,6 +143,19 @@ DECLARE @OBJNAME NVARCHAR(MAX)
DECLARE curCreate1 CURSOR FAST_FORWARD FOR
SELECT createscript, ViewFullName
FROM SchemaBoundViews ;
DECLARE curCreate1 CURSOR LOCAL FAST_FORWARD FOR
SELECT
REPLACE(
SUBSTRING(
createscript,
CHARINDEX('CREATE VIEW', UPPER(createscript)),
LEN(createscript)
),
'CREATE VIEW',
'CREATE OR ALTER VIEW'
) AS createscript,
ViewFullName
FROM SchemaBoundViews;
OPEN curCreate1;
FETCH NEXT FROM curCreate1 INTO @CreateSQL2,@OBJNAME;