Roy_88的专栏

激情在燃烧!!!

用户操作
[即时聊天] [发私信] [加为好友]
吴熹ID:roy_88
16361次访问,排名7823,好友56人,关注者248人。
CSDN论坛大版主
微软中文技术论坛(MSDN and TechNet)版主
roy_88的文章
原创 28 篇
翻译 0 篇
转载 0 篇
评论 20 篇
吴熹的公告
燃料你的激情!
最近评论
tsingleung:顯示中文會編程亂碼的!請問該問題是否可以解決?
Tsing.liang@yahoo.com.cn
tsingleung:顯示中文會編程亂碼的!
yihaijian1:mark
Lori268:厉害
jorlim:
文章分类
收藏
    相册
    友情链接
    中国风_燃料你的激情!!!
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 2005自动生成数据库的清空脚本收藏

    新一篇: 怎樣實現一個同sp_executesql支持變量傳參功能的存儲過程 | 旧一篇: SQL2005的CTE

    用函數生成腳本:
    
    --自动生成数据库的清空脚本(SQL05環境)
    
    
    
    
    
    use Test--指定數據庫
    
    go
    
    if object_id('F_Clear','TF') is not null
    
    	drop function F_Clear
    
    go
    
    create Function F_Clear()
    
    returns @T table(Clear_SQL nvarchar(200),TableName sysname)
    
    as
    
    begin 
    
    ;with Ta_tree(Lev,fkeyID,rkeyID)
    
    as
    
    (select 
    
    	1, a.fkeyid,a.rkeyid
    
    from 
    
    	sys.sysforeignkeys  a
    
    where
    
    	not exists(select 1 from sys.sysforeignkeys  where rkeyid=a.fkeyid)
    
    union all
    
    select 
    
    	b.Lev+1,a.fkeyid,a.rkeyid
    
    from 
    
    	sys.sysforeignkeys  a
    
    join
    
    	Ta_tree b on b.rkeyID=a.fkeyid)
    
    ,Ta_tree2
    
    as
    
    (select 
    
    	Lev,ObjectID,row=row_number()over(partition by ObjectID order by Lev desc)
    
    from 
    
    	(select Lev,FkeyID as ObjectID from Ta_tree union all select Lev+1,rkeyID as ObjectID from Ta_tree) T
    
    )
    
    insert @T
    
    select 
    
    	[Clear_SQL]=case when Lev=1 or b.ObjectID is null then 'Truncate table '+quotename(a.Name) when c.Object_id is not null then 'Delete '+quotename(a.Name)
    
    	+char(13)+char(10)+'if @@rowcount>0 or IDENT_Current('''+a.Name+''')>1'+char(13)+char(10)+'dbcc checkident ('+quotename(a.Name,'''')+',Reseed,0)' else 'Delete '+quotename(a.Name) end,[TableName]=a.Name
    
    from 
    
    	sysobjects a
    
    left join
    
    	Ta_tree2 b on a.ID=b.ObjectID and b.row=1
    
    left join
    
    	sys.identity_columns c on a.ID=c.object_id
    
    where
    
    	Xtype='U'
    
    order by case when b.ObjectID is null then 0 else 1 end,b.lev asc
    
    
    
    
    
    return 
    
    end
    
    go
    
    select * from F_Clear()
    
    go
    
    drop function F_Clear
    
    

    发表于 @ 2008年05月21日 22:57:00|评论(loading...)|编辑|收藏

    新一篇: 怎樣實現一個同sp_executesql支持變量傳參功能的存儲過程 | 旧一篇: SQL2005的CTE

    评论

    #ranzj 发表于2008-07-01 20:25:36  IP: 221.216.212.*
    这个安全吗?
    2008-07-07 21:28:26作者回复
    改用函数安全,保存表结构清空数据。
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 吴熹