[1] [2] [3] [4] [5]  删除垃圾信息 [ 2010-05-26 | 本站原创 ]
delete from reguser where (userid in (select username from trade group by username having count(username) >400)) delete from reguser where (userid in (select username from trade group by username having count(username) > 50))
delete from trade where (username in (select username from trade group by username having count(username) > 300)) and (tid not in (select max(tid) from trade group by username having count (username) >300))
SQL2000触发器 [ 2010-05-25 | 本站原创 ]
create trigger trg_delete on reguser for delete
as delete from trade where username in (select userid from deleted) delete from product where username in (select userid from deleted) delete from jobinfo where userid in (select userid from deleted) delete from news where userid in (select userid from deleted) delete from reguser where userid in (select userid from deleted) ---------------------------------
create trigger tr_deletecompany2 on company for delete as delete classified from classified a join deleted b on a.username=b.username create trigger tr_deletecompany on company for delete as delete info from info a join deleted b on a.username=b.username
错误823解决办法 [ 2010-05-10 | 本站原创 ] 错误823解决办法
错误823解决办法 一、sql-server附加数据库时失败。 1、异常情况:服务器在正常运行的情况下突然断电,导致数据库文件损坏,具体表现是:数据库名后面有“(置疑)”字样。 2、异常分析:关于823错误的 sql-server 中的帮助: ================================ 错误 823 严重级别 24 消息正文在文件 "%4!" 的偏移量 %3! 处的 %2! 过程中,检测到 i/o 错误 %1!。
解释 microsoft sql server 在对某设备进行读或写请求时遇到 i/o 错误。该错误通常表明磁盘问题。但是,错误日志中在错误 823 之前记录的其它核心消息应指出涉及了哪个设备。 3、解决办法:在sql-server企业管理器中,新建同名数据库(这里假设为test)后,停止数据库,把损坏的数据库文件data.mdf和test_log.ldf覆盖刚才新建数据库目录下的data.mdf和test_log.ldf,同时删除test_log.ldf文件;启动数据库服务,发现数据库名test后面有“置疑”字样。不要紧,打开sql自带查询分析器,分别执行如下sql语句:
--第一、 exec sp_configure 'allow updates',1 reconfigure with override
--第二、 update sysdatabases set status=32768 where name='goldtimes'
--第三、 dbcc rebuild_log ('goldtimes','f:\database\goldtimes_log.ldf')
--第四、 update sysdatabases set status=0 where name='goldtimes'
--第五、 restore database goldtimes with recovery
--第六、 exec sp_configure 'allow updates',0 reconfigure with override
照此方法操作,应该能修复数据库正常访问了。如果问题依然存在,最笨的一个方法就是新建另一个数据库,把原数据库(test)各个表的数据导出到新建数据库表中。
1.打上sp4
2.sqlserver服务器-->开始菜单-->sqlserver-->服务器网络实用工具-->启用 winsock代理-->代理地址:(sqlserver服务器ip)-->代理端口-->1433-->ok了
用ip连接 sql2000字段默认值 [ 2010-03-26 | 本站原创 ] sql2000字段默认值
addtime (getdate()) 默认时间
regfrom ('&admin&') 默认
log_postyear (datepart(year,getdate())) 默认时间-年
log_postmonth (datepart(month,getdate())) 默认时间-月
log_postday (datepart(day,getdate())) 默认时间-日 打开企业管理器,选择要登陆的服务器,点属性,在安全的选项卡里把“仅windows”改成“sql server和windows” 企业管理器左边的选要登陆的服务器,安全性,登陆,可以设置登陆用的用户和密码。 以前装过sql server,后来删掉。现在重装,却出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”错误。无法进行下去。
参考网上资料,总算搞定。步骤是:
1)添加/删除程序中彻底删除sql server。
2)将没有删除的sql server目录也删除掉。
3)打开注册表编辑器,在hkey_local_machine\system\currentcontrolset\control\session manager中找到pendingfilerenameoperations项目,并删除它。这样就可以清除安装暂挂项目。
4)删除注册表中跟sql server相关的键。
其实估计只要做第3步就可以搞定,这样就可以清除安装暂挂项目。自己是先走了1,2,4,最后做了3才搞定。所以估计3才是最关键的。 删除xp_cmdshell use master exec sp_dropextendedproc n'xp_cmdshell' go -----------------------------------
use master
exec sp_dropextendedproc 'xp_cmdshell' go
===========================================
恢复xp_cmdshell
use master exec sp_addextendedproc n 'xp_cmdshell', n'xplog70.dll' go
=============================================== update sysxlogins set name='lottery' where sid=0x01
通常,在执行多条sql语句时,我们会采用下面的方法:
<% sql1 = "update table1 set a=b where id=1" conn.execute sql1 sql2 = "update table2 set a=b where id=2" conn.execute sql2 sql3 = "update table3 set a=b where id=3" conn.execute sql3 %>
事实上,这是一种效率很低下的写法,为了提高sql的执行效率,我们可以把多个sql语句用分号拼接在一起,然后一次性交给conn来执行。如下:
<% sql1 = "update table1 set a=b where id=1" sql2 = "update table2 set a=b where id=2" sql3 = "update table3 set a=b where id=3" sql = sql1 & ";" & sql2 & ";" & sql3 conn.execute sql %>
但是,以上2种写法都会面临一个问题,就是当我们需要保证3条sql语句都必须完整执行,当某一条执行错误时,其他2条也跟着回滚时,我们就需要用到sqlserver的事务控制了,不少的文章建议使用以下方法:
<% dim conn=server.createobject("adodb.connection") '开始事务 conn.begintrans '执行sql,若成功则提交事,否则回滚事务 conn.execute(sql语句) '提交事务 conn.committrans '回滚事务 conn.rollbacktrans %>
在很多时候,这并不能达到保证sql语句完整执行的目的,高效的做法应该是利用sqlserver本身的事务控制功能,如下:
<% sub exesql(byval sqlstr) dim trsql trsql = "set xact_abort on;begin transaction;" trsql = trsql & sqlstr trsql = trsql & ";commit transaction;set xact_abort off" conn.execute(trsql) end sub
sql1 = "update table1 set a=b where id=1" sql2 = "update table2 set a=b where id=2" sql3 = "update table3 set a=b where id=3" sql = sql1 & ";" & sql2 & ";" & sql3 exesql sql %>
本篇文章来源于 goldtimes.net 原文链接:http://www.goldtimes.net/goldtimes/view.asp?id=657
create trigger tr_deletecompany on company for delete as delete info from info a join deleted b on a.username=b.username go
删除企业表,同时删除该企业发布的信息
-----------------------------------------------------------
create trigger tr_deletecompany2 on company for delete as delete classified from classified a join deleted b on a.username=b.username go
-----------------------------------------------------------
delete from company where companyname='' or companyname is null [1] [2] [3] [4] [5]  |