首先,一个常识,不要在生产环境直接执行sql语句,原因不多说
but,实际上很多时候没办法,只能直接到服务器上执行sql
ok,这个到此为止
然后,在生产环境执行sql危险性极大,如果出问题后果跟核弹在头上爆炸一样
那是一个风雨交加,电闪雷鸣的夜晚,我加着班。无聊的加班使我昏昏欲睡,麻木的手指噼里啪啦的码着代码。远程连接到了服务器,我需要查一下数据,三两下敲出了我的sql,选中,然后F5
结果输出栏的9900+行记录受影响让我一脸懵逼
当时脑袋就爆了,我知道我要死了
定睛一看,原来服务器上很卡,我并没有选中我写的sql,而是选中了一个空白字符,也就是空格
如果没有选中任何语句,sql server 2008的客户端软件会执行所有当前编辑窗口中的所有sql,当然这是我后来才知道的
我往上面一翻,发现了一些update语句,当然这不是我写的,是其他同事写的,被我执行到了;还有写delete语句也被执行到了
sql server 2008的客户端是自动提交事务的,点了F5就没法撤销
死定了这次
后来百度了下,所幸数据库的备份模式是完全备份,可以通过日志找回数据,在老司机的帮忙下数据找回来了
谢天谢地
but,实际上很多时候没办法,只能直接到服务器上执行sql
ok,这个到此为止
然后,在生产环境执行sql危险性极大,如果出问题后果跟核弹在头上爆炸一样
那是一个风雨交加,电闪雷鸣的夜晚,我加着班。无聊的加班使我昏昏欲睡,麻木的手指噼里啪啦的码着代码。远程连接到了服务器,我需要查一下数据,三两下敲出了我的sql,选中,然后F5
结果输出栏的9900+行记录受影响让我一脸懵逼
当时脑袋就爆了,我知道我要死了
定睛一看,原来服务器上很卡,我并没有选中我写的sql,而是选中了一个空白字符,也就是空格
如果没有选中任何语句,sql server 2008的客户端软件会执行所有当前编辑窗口中的所有sql,当然这是我后来才知道的
我往上面一翻,发现了一些update语句,当然这不是我写的,是其他同事写的,被我执行到了;还有写delete语句也被执行到了
sql server 2008的客户端是自动提交事务的,点了F5就没法撤销
死定了这次
后来百度了下,所幸数据库的备份模式是完全备份,可以通过日志找回数据,在老司机的帮忙下数据找回来了
谢天谢地