Jun 24, 2026, 10:39 AM
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user