栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

用TSQL清除sql-server中数据库的模式?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用TSQL清除sql-server中数据库的模式?

想通了,我会分享我最终想出的东西。该脚本创建一个游标,以遍历数据库的INFORMATION_SCHEMA中的表。它对表进行3次传递,分别是外键,然后是主键,最后是表本身。它基于Raj
More的想法,并考虑了devio的评论。

-- Helper ProcedureCREATE PROC #DropConstraints  @tableSchema nvarchar(max),  @tableName nvarchar(max),  @constraintType nvarchar(20)ASBEGIN  DECLARE @cName nvarchar(max);  DECLARE constraint_cursor CURSOR FOR    SELECT CONSTRAINT_NAME     FROM INFORMATION_SCHEMA.TABLE_ConSTRAINTS    WHERe       CONSTRAINT_TYPE = @constraintType      AND TABLE_NAME = @tableName      AND TABLE_SCHEMA = @tableSchema  OPEN constraint_cursor  FETCH NEXT FROM constraint_cursor INTO @cName  WHILE @@FETCH_STATUS = 0  BEGIN    EXEC ('ALTER TABLE ' + @tableSchema + '.' + @tableName + ' DROp ConSTRAINT ' + @cName);    FETCH NEXT FROM constraint_cursor INTO @cName  END  CLOSE constraint_cursor  DEALLOCATE constraint_cursorENDGO-- DROp DATAbase TABLESBEGIN TRANSACTION  DECLARE @tableSchema varchar(max), @tableName varchar(max);  -- Setup Cursor for looping  DECLARE table_cursor SCROLL CURSOR FOR    SELECT TABLE_SCHEMA, TABLE_NAME     FROM INFORMATION_SCHEMA.TABLES  OPEN table_cursor  -- Drop Foreign Keys  FETCH NEXT FROM table_cursor INTO @tableSchema, @tableName  WHILE @@FETCH_STATUS = 0  BEGIN      EXEC #DropConstraints @tableSchema, @tableName, 'FOREIGN KEY';    FETCH NEXT FROM table_cursor INTO @tableSchema, @tableName  END  -- Drop Primary Keys  FETCH FIRST FROM table_cursor INTO @tableSchema, @tableName  WHILE @@FETCH_STATUS = 0  BEGIN    EXEC #DropConstraints @tableSchema, @tableName, 'PRIMARY KEY';    FETCH NEXT FROM table_cursor INTO @tableSchema, @tableName  END  -- Drop Tables  FETCH FIRST FROM table_cursor INTO @tableSchema, @tableName  WHILE @@FETCH_STATUS = 0  BEGIN    EXEC ('DROp TABLE ' + @tableSchema + '.' + @tableName);    FETCH NEXT FROM table_cursor INTO @tableSchema, @tableName  END  -- Cleanup  CLOSE table_cursor  DEALLOCATE table_cursorCOMMIT TRANSACTIONGO


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/407503.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号