diff options
Diffstat (limited to 'www/wiki/maintenance/mssql/archives/patch-logging-drop-fks.sql')
-rw-r--r-- | www/wiki/maintenance/mssql/archives/patch-logging-drop-fks.sql | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/www/wiki/maintenance/mssql/archives/patch-logging-drop-fks.sql b/www/wiki/maintenance/mssql/archives/patch-logging-drop-fks.sql new file mode 100644 index 00000000..c9cbca35 --- /dev/null +++ b/www/wiki/maintenance/mssql/archives/patch-logging-drop-fks.sql @@ -0,0 +1,37 @@ +DECLARE @base nvarchar(max), + @SQL nvarchar(max), + @id sysname;-- + +SET @base = 'ALTER TABLE /*_*/logging DROP CONSTRAINT ';-- + +SELECT @id = fk.name +FROM sys.foreign_keys fk +JOIN sys.foreign_key_columns fkc + ON fkc.constraint_object_id = fk.object_id +JOIN sys.columns c + ON c.column_id = fkc.parent_column_id + AND c.object_id = fkc.parent_object_id +WHERE + fk.parent_object_id = OBJECT_ID('/*_*/logging') + AND fk.referenced_object_id = OBJECT_ID('/*_*/mwuser') + AND c.name = 'log_user';-- + +SET @SQL = @base + @id;-- + +EXEC sp_executesql @SQL;-- + +SELECT @id = fk.name +FROM sys.foreign_keys fk +JOIN sys.foreign_key_columns fkc + ON fkc.constraint_object_id = fk.object_id +JOIN sys.columns c + ON c.column_id = fkc.parent_column_id + AND c.object_id = fkc.parent_object_id +WHERE + fk.parent_object_id = OBJECT_ID('/*_*/logging') + AND fk.referenced_object_id = OBJECT_ID('/*_*/page') + AND c.name = 'log_page';-- + +SET @SQL = @base + @id;-- + +EXEC sp_executesql @SQL; |