记录sql server 的批量删除主外键的sql语句
短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
select b.name TableName,a.name TypeName,a.* from sysobjects a inner join sysobjects b on a.parent_obj=b.id and b.xtype=‘U‘
--删除约束 F外键、PK主键、D 约束、UQ 唯一约束
declare @tableName varchar(max),@typeName varchar(max)
declare fk_cursor cursor for select b.name TableName,a.name TypeName from sysobjects a inner join sysobjects b on a.parent_obj=b.id and b.xtype=‘U‘ where a.xtype=‘PK‘
open fk_cursor
fetch next from fk_cursor into @tableName,@typeName
while @@FETCH_STATUS = 0
begin
exec (‘ALTER TABLE [dbo].[‘[email protected]+‘] DROP CONSTRAINT [‘[email protected]+‘]‘)
fetch next from fk_cursor into @tableName,@typeName
end
close fk_cursor
deallocate fk_cursor
select b.name TableName,a.name IndexName from sys.sysindexes a right join sys.sysobjects b on a.id=b.id where b.xtype=‘U‘ and a.name is not null
--删除IX 索引
declare @tableName varchar(max),@indexName varchar(max)
declare index_cursor cursor for select b.name TableName,a.name IndexName from sys.sysindexes a right join sys.sysobjects b on a.id=b.id where b.xtype=‘U‘ and a.name is not null
open index_cursor
fetch next from index_cursor into @tableName,@indexName
while @@FETCH_STATUS = 0
begin
exec (‘DROP INDEX [‘[email protected]+‘] ON [dbo].[‘[email protected]+‘]‘)
fetch next from index_cursor into @tableName,@indexName
end
close index_cursor
deallocate index_cursor
select b.name TableName,a.name ColumnName,a.* from syscolumns a
inner join sysobjects b on b.id=a.id and b.xtype=‘U‘
inner join systypes c on a.xtype=c.xtype and c.name=‘uniqueidentifier‘
--修改uniqueidentifier的类型为nvarchar(max)
declare @tableName varchar(max),@columnName varchar(max)
declare change_type_cursor cursor for select b.name TableName,a.name ColumnName from syscolumns a
inner join sysobjects b on b.id=a.id and b.xtype=‘U‘
inner join systypes c on a.xtype=c.xtype and c.name=‘uniqueidentifier‘
open change_type_cursor
fetch next from change_type_cursor into @tableName,@columnName
while @@FETCH_STATUS =0
begin
exec (‘ALTER TABLE [dbo].[‘[email protected]+‘] ALTER COLUMN [‘[email protected]+‘] nvarchar(max) NOT NULL‘)
fetch next from change_type_cursor into @tableName,@columnName
end
close change_type_cursor
deallocate change_type_cursor
记录sql server 的批量删除主外键的sql语句
原文地址:https://www.cnblogs.com/dazen/p/13307105.html
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341