教您如何简单删除SQLServer数据库的所有数据

哦,我以前做过这个。
我记得那是2 01 5 年的时候,我以前在一家互联网公司做数据库维护。
当时公司有一个大项目要上线,需要清理测试数据库中的所有数据。
结果我对数据库的结构不太了解,一晚上就删了,把数据库搞崩溃了。

当时我像无头苍蝇一样删除一个又一个表,但是发现删除不了,因为表之间有外键约束。
当时我的头就晕了,因为数据库里有上百张表,而且每张表都是相互关联的。
哪个表应该先删除,哪个表应该最后删除。
这是一次全食。

后来在网上找了好久,终于找到了一个叫sp_MSForEachTable的程序。
一开始我以为这个存储过程没有官方文档,实在是一头雾水,后来尝试了一下,发现非常好用。
这个存储过程可以自动交叉所有的表,然后帮你删除数据,真是方便。

我当时写的脚本是这样的 -
禁用限制和触发器 更改表名称 NOCHECK 约束全部; 更改禁用表触发器名称;
-
删除所有数据 删除表名;
-
恢复约束和触发器 使用复选框更改表名称; 重命名表触发器;
-
显示每个表中的记录 从
中选择表名 使用此脚本,我首先禁用所有表约束和触发器,然后删除所有数据,最后恢复约束和触发器。
这样我就可以轻松的清除数据库中的所有数据了。

现在回想起来,当时确实很傻,但也正是因为那次经历,让我对数据库有了更深入的了解。
现在,当我面对这种情况时,我绝对可以轻松应对。
嘿,关于任何,你经历过类似的洞吗?

SQL语句如何修改主键字段的字段类型类型

我当时很困惑。
我必须首先找出主键是什么。
2 02 2 年,我必须写一条SQL语句来检查某个城市的数据库,就像这样。
对于 SQLSERVER,使用 select name as pkName from dbo.sysobjects where xtype='PK' and Parent_obj=(select id from dbo.sysobjects where name='table name')。
对于 ORACLE,请使用 SELECT CONSTRAINT_NAME FROM。
USER_CONSTRAINTS WHERE TABLE_NAME=UPPER('表名') AND CONSTRAINT_TYPE='P'。

那么你必须摆脱主键。
ALTER TABLE 表名 DROPCONSTRAINT 约束名称。
对于ORACLE,还可以使用级联删除索引来去掉相关索引。

接下来要修改字段,必须先备份该栏的数据。
比如先更新为null,然后更改字段类型,最后将数据复制回来。
在SQLSERVER中,默认值必须单独处理。
您必须首先删除约束,然后更改列,然后添加约束。
在ORACLE中,要删除默认值,写入default null,然后修改列。

最后一步是添加主键。
必须指定主键名称,ALTER TABLE 表名 ADD CONSTRAINT 主键名称 PRIMARY KEY (F1 , F2 ),或者不指定名称,ALTER TABLE 表名称 ADD PRIMARY KEY (F1 , F2 )。
就这样,整个操作就完成了。