自动生成清空数据库的SQL语句.doc

自动生成清空数据库的SQL语句.doc

ID:59333113

大小:35.00 KB

页数:6页

时间:2020-09-04

自动生成清空数据库的SQL语句.doc_第1页
自动生成清空数据库的SQL语句.doc_第2页
自动生成清空数据库的SQL语句.doc_第3页
自动生成清空数据库的SQL语句.doc_第4页
自动生成清空数据库的SQL语句.doc_第5页
资源描述:

《自动生成清空数据库的SQL语句.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、自动生成清空数据库的SQL语句(V2.0)之前写的那脚本没有注意到这重置标识值的问题。1、当我们向一个含有标识列的表插入数据后,再执行Delete From TableNameDBCC Checkident ('TableName',Reseed,0)然后插入新数据,开始值是从1开始。这样处理是正确的。 2、当我们新建一个表,在没有插入数据,就执行Delete From TableNameDBCC Checkident ('TableName',Reseed,0) 然后插入新数据,开始值就会从0开始。这样的结果,就不是我们预期要求的结果了。下面做一个测试:第

2、一种情况:Use testGoSet Nocount OnIf Object_id('test') Is Not null    Drop Table testGoCreate Table test(id int Identity(1,1))Insert test Default ValuesInsert test Default ValuesInsert test Default ValuesDelete From testDbcc Checkident ('test',reseed,0)Insert test Default ValuesDbcc Che

3、ckident ('test',noreseed)Select * From test/*检查标识信息: 当前标识值 '3',当前列值 '0'。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。检查标识信息: 当前标识值 '1',当前列值 '1'。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。id-----------1*/第2种情况:Use testGoSet Nocount OnIf Object_id('test') Is Not null    Drop Table testGoCreate Table

4、 test(id int Identity(1,1))Dbcc Checkident ('test',reseed,0)Insert test Default ValuesDbcc Checkident ('test',noreseed)Select * From test --这里我们会发现开始值是0/*检查标识信息: 当前标识值 'NULL',当前列值 '0'。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。检查标识信息: 当前标识值 '0',当前列值 '0'。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系

5、。id-----------0*/ 为了解决这样的开始值为0问题,必须重置标识值为null解决如下: Use testGoSet Nocount OnIf Object_id('test') Is Not null    Drop Table testGoCreate Table test(id int Identity(1,1))Declare @null int  --借助一个null值的变量来重置表标识值为nullDbcc Checkident ('test',reseed,@null)Insert test Default ValuesDbcc Ch

6、eckident ('test',noreseed)Select * From test/*检查标识信息: 当前标识值 'NULL',当前列值 'NULL'。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。检查标识信息: 当前标识值 '1',当前列值 '1'。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。id-----------1*/  因此,以前写的自动生成清空数据库的SQL语句脚本纠正如下: /*自动生成清空数据库的SQL语句(V2.0)Andy2008-10-8*/Use TestGoDeclare 

7、@Sql nvarchar(Max);With T1As(    Select    Convert(int,0) as LevelNo,fkeyid,rkeyid    From sys.sysforeignkeys a    Where Not Exists(Select 1 From sys.sysforeignkeys Where rkeyid=a.fkeyid)    Union All    Select b.LevelNo+1,a.fkeyid,a.rkeyid    From sys.sysforeignkeys a,T1 b    Wher

8、e a.fkeyid=b.rkeyid) ,T2As

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。