有没有办法定义每个表的最大大小或表中的最大行数? (对于SELECT INTO new_table操作)
我正在使用SELECT INTO和JOINS在大约7000万行的表中工作,碰巧我在ON条件下犯了错误。因此,此连接操作的结果创建了一个大于数据库大小限制的表。数据库崩溃并进入恢复模式(停留2天)
我想知道将来如何避免这种问题。有没有"良好的礼仪手册"在使用大桌子时?任何一种预先定义的配置来防止这个问题?
我没有代码,但正如我所说,它基本上是一个左连接,结果通过SELECT INTO插入到一个新表中。
PS:我对SQL SERVER或任何其他Relational数据库没有多少经验。
谢谢。
答案 0 :(得分:1)
SET ROWCOUNT 10000
本可以插入不超过10,000行。但是,虽然这可以防止损坏,但它也会掩盖您对SQL查询所犯的错误。
我说在运行任何SELECT INTO
之前,我会先SELECT COUNT(*)
查看JOIN
和WHERE
子句产生的行数。如果数量是巨大的,或者如果它花费数小时甚至计算,那那就是你的警告信号。