今闲来无事写些SQL,欢迎大家来拍砖~~~ 10分,无满意结帖,结帖人sunbird69]

发布时间:2017-4-26 0:43:13 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"今闲来无事写些SQL,欢迎大家来拍砖~~~ 10分,无满意结帖,结帖人sunbird69]",主要涉及到今闲来无事写些SQL,欢迎大家来拍砖~~~ 10分,无满意结帖,结帖人sunbird69]方面的内容,对于今闲来无事写些SQL,欢迎大家来拍砖~~~ 10分,无满意结帖,结帖人sunbird69]感兴趣的同学可以参考一下。

今闲来无事,胡乱搞点SQL   功能是删除用户创建的表、视图、存储过程 需要对哪个数据库操作,连接上直接F5运行,测试前注意备份哦 或建个测试库 大家有啥好意见,欢迎讨论~~~ ------------------------------------------------------------------------ --delete all the tables、views、procedures of the database /****** Object:  three procedures    Script Date: 08/25/2007 17:17:28 by Sunbird69(**) ******/ print '        before deleting' select name as tablename,type,crdate from sysobjects where type='u' select name as viewname,type,crdate from sysobjects where type='v' select name as procedurename,type,crdate from sysobjects where type='p' SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO --delete all user tables IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'delalltables') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' create procedure delalltables as declare @st varchar(200),@tablename nvarchar(30),@it int,@tcountrows int set @it=0 select @tcountrows=count(name) from sysobjects where type=''u'' print @tcountrows while @it<@tcountrows begin select @tablename=name from sysobjects where name = (select top 1 name from sysobjects where type=''u'') set @st=''drop table [email protected] exec(@st) print @tablename set @[email protected]+1 end' END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO --drop all views tables IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'delallviews') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' create procedure delallviews as declare @sv varchar(200),@viewname nvarchar(30),@iv int,@vcountrows int set @iv=0 select @vcountrows=count(name) from sysobjects where type=''v'' print @vcountrows while @iv<@vcountrows begin select @viewname=name from sysobjects where name = (select top 1 name from sysobjects where type=''v'') set @sv=''drop view [email protected] exec(@sv) print @viewname set @[email protected]+1 end' END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO --drop all procedures IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'delallprocedures') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' create procedure delallprocedures as declare @sp varchar(200),@procedurename nvarchar(30),@ip int,@pcountrows int set @ip=0 select @pcountrows=count(name) from sysobjects where type=''p'' print @pcountrows while @ip<@pcountrows begin select @procedurename=name from sysobjects where name = (select top 1 name from sysobjects where type=''p'') set @sp=''drop procedure [email protected] exec(@sp) print @procedurename set @[email protected]+1 end' END GO --carry out exec delalltables exec delallviews exec delallprocedures print '        after deleting' --check the result select name as tablename,type,crdate from sysobjects where type='u' select name as viewname,type,crdate from sysobjects where type='v' select name as procedurename,type,crdate from sysobjects where type='p'

拍砖的來了

沙发没有了

select 'drop table ' + name from sysobjects where type = 'u' select 'drop view ' + name from sysobjects where type = 'v' and name not in ('syssegments', 'sysconstraints') select 'drop procedure ' + name from sysobjects where type = 'p'

mark

楼上的谁借块砖头给我?

每次只删一个,不够狠的, 要删一起删,狠一点,破坏数据库是我的强项 declare @tmp varchar(8000) set @tmp = '' select @tmp = @tmp + 'drop table [' + name + '];' from sysobjects where type = 'u' exec @tmp

今天你删了吗?

--还不够狠,加这个: dump transaction dbname with no_log

拍 一下

哈哈

dump transaction dbname with no_log.......贼汗..

顶!!!

用磚直接朝硬盤拍下去,還要狠...

往硬盘电路板上接高压电就可以啦,这个比较文明

恐怕不够彻底,数据恢复高手只需要盘片就足够了,不需要硬盘的外围电路。

最彻底的操作莫过于彻底销毁硬件...

磚頭雨...... 樓下的繼續    ***************************************************************************** 欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)  http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html

那还不如硬盘上流几滴眼泪 这个彻底

拍,拍,拍

那还不如硬盘上流几滴眼泪   这个彻底 ------------------------------ Prison Break S1里Scofield把硬盘扔河里最后被Mohone打捞出来还行的 几滴眼泪似乎不够

format x:

都删了.... 

接分先!

这个简单啊,网上搜一下就得到答案了.

引用 21 楼 Roger122 的回复:format x: format c:

拍下

存在表约束,删除不了 over!

没事拍砖型, Over!

全是人才啊!~ 我没挨拍就晕了!~

想拍一看就晕了,你们都是炸弹

kan

kan

引用 25 楼 dutguoyi 的回复:引用 21 楼 Roger122 的回复: format x: format c:

引用 27 楼 wgh88888888 的回复:存在表约束,删除不了  over!  --在SQL2005下删除数据库中所有用户表 DECLARE @sql NVARCHAR(MAX) WHILE 1=1 BEGIN SET @sql='' SELECT @[email protected] + ', ' + QUOTENAME(S.name) + '.' + QUOTENAME(T.name) FROM sys.tables T JOIN sys.schemas S ON T.schema_id=S.schema_id LEFT JOIN sys.foreign_key_columns F ON T.object_id=F.referenced_object_id WHERE F.constraint_object_id IS NULL IF @sql='' BREAK SET @sql=STUFF(@sql, 1, 1, 'DROP TABLE') PRINT @sql EXEC(@sql) END

考古.

drop database dbname --够狠的

不错啊 比我强多了

扔到王水里化了

有外健约束会出错,删除失败:)

不错的,我还没用过这样的语句呢

以前写的一个: 有时候需要把数据库中表记录都删除掉,为了方便我们有必要制作一个清空数据库的脚本, 这里主要是考虑存在外键约束,和标识列问题。 存在外键关系时候就要查询出,先要删除哪一张表,后要删除哪一张表, 当存在标识列的时候,就要DBCC Checkident 来重新设置标识值。 Declare @Sql nvarchar(Max) ;With T1 As (     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     Where a.fkeyid=b.rkeyid )  ,T2 As (     Select LevelNo,id=fkeyid From T1     Union All     Select LevelNo+1,rkeyid From T1 ) ,T3 As (     Select a.name,LevelNo=Max(Isnull(b.LevelNo,0)),c.is_identity      From sys.sysobjects a     Left Outer Join T2 b On a.id=b.id      Left Outer Join sys.identity_columns c On c.object_id=a.id     Where  a.xtype='U' And a.name<>'sysdiagrams'     Group By  a.name,c.is_identity      ) Select @Sql=Isnull(@Sql,'Use'+Quotename(Db_name()))+char(13)+char(10)+         Case    When LevelNo=0 Then 'Truncate Table '+Quotename(name)                 When is_identity=1 Then 'Delete From '+Quotename(name)+' DBCC Checkident ('''+Quotename(name)+''',Reseed,0)'                 Else 'Delete From '+Quotename(name) End From T3 Order By LevelNo Print @Sql 生成示例 e.g: /* Use[Test] Truncate Table [os] Truncate Table [T2] Truncate Table [t4] Truncate Table [t5] Truncate Table [test] Delete From [T3] Delete From [T1] */

要是想Drop表,存储过程,视图,原理也是一样的,悄悄修改下即可! up

引用 36 楼 ojuju10 的回复:drop database dbname --够狠的 也太恨了,o(∩_∩)o...

declare @dbname sysname select @dbname=db_name() use master exec ('drop database ' + @dbname) exec ('create database ' + @dbname)

那样还是不够狠!~按照我的想法销毁所有的硬盘和把生产硬盘的人全部打成傻子更好!~

请问下  怎样能使用一条语句获得在sql server2000 中的说有数据库名呢????

类似于 select name from sysobjects where type='u' 这样的语句啊

最好先买保险

那样还是不够狠!~按照我的想法销毁所有的硬盘和把生产硬盘的人全部打成傻子更好!~ 我看这个够狠

引用 20 楼 rouqu 的回复:那还不如硬盘上流几滴眼泪  这个彻底  ------------------------------  Prison Break S1里Scofield把硬盘扔河里最后被Mohone打捞出来还行的 几滴眼泪似乎不够 把硬盘泡到硫酸桶里没问题了吧?

引用 46 楼 forerock 的回复:请问下  怎样能使用一条语句获得在sql server2000 中的说有数据库名呢???? sp_msforeachdb

not grant dba to me ~还是只用不删得好嘿嘿

引用 38 楼 happyflystone 的回复:扔到王水里化了 丝般柔滑啊~

現在閑來無事專接分,可惜分數太少

現在閑來無事專接分,可惜分數太少

引用 43 楼 DVD_01 的回复:引用 36 楼 ojuju10 的回复: drop database dbname --够狠的 也太恨了,o(∩_∩)o... 见过狠的,没见过这么狠的。

太乱了 注意一下排版就好了

引用 56 楼 claro 的回复:引用 43 楼 DVD_01 的回复: 引用 36 楼 ojuju10 的回复:  drop database dbname --够狠的  也太恨了,o(∩_∩)o...    见过狠的,没见过这么狠的。 のの,来接分了,希望楼主没被砖头拍晕~

study

代码怎么可以没有缩进呢??????????????????

引用 8 楼 Limpire 的回复:--还不够狠,加这个:  dump   transaction   dbname   with   no_log  直接把硬盘拆下来扔掉算了.

再一次考古~

友情up

写的挺不错,挺多的!!

哈哈哈 我也来啦。

暴力

up

pu

末班车 终于赶上了

把硬盘片拿出来撕了,有条件的,还可以把那些备份的磁带烧了

上一篇:SQL Server 2005中没了xp_makecab 这个存储过程? 20fredrickhu]
下一篇:在做一个数据库时遇到同名同姓员工的问题 20fredrickhu]

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款