当我尝试删除数据库时,出现错误“无法删除数据库“dbname”,因为它当前正在使用中”。但是,当我运行时sp_who2
,肯定没有连接到该数据库的会话。我还将数据库设置为single_user mode with rollback immediate
.
为什么会这样?
使用 SQL Server 2005。
我正在执行一个没有 where 子句的巨大 DELETE FROM。它基本上等同于 TRUNCATE TABLE 语句 - 除了我不允许使用 TRUNCATE。问题是表很大 - 1000 万行,需要一个多小时才能完成。有没有办法让它更快,没有:
t-log 已经在一个单独的磁盘上。
欢迎任何建议!
我知道我可以通过运行 sp_cycle_errorlog 轻松循环当前错误日志,但我想知道 SQL Server 是否会删除旧的/存档的错误日志文件。似乎无法在任何地方找到答案...
有没有办法破译死锁图中的锁是表级、页级还是行级?我从图中获得了我需要的所有信息,包括隔离级别 (2),但我也很想知道这一点。
感谢任何能提供帮助的人!
我使用庞大的数据集。我的数据库中发生的许多事务都是巨大的——数万亿行,甚至更多。
一些表使用IDENTITY
列,而不是用于唯一 ID,只是因为它简单快速,并提供并发解决方案来提供递增数字。但是,当该IDENTITY
列达到其限制时,我希望它在达到其限制时立即在语句中自动重新设定种子。
我很欣赏这对大多数人来说是奇怪的行为,但至少将此功能作为一个选项是有意义的,当然吗?你甚至不能在事务中重新播种,我也不能使用 truncate(不想删除)。
为什么这是不可能的?有没有其他人遇到过这个问题?
功能如下:在 SQL Server 中,我有一个表作为序列号生成器,就像 Oracle 中的 Sequence 一样。我们希望数字的最大值是 999999,之后重置为 0。这个数字被添加到其他一些字段(其中一个是日期戳)以生成参考数字。
该系统是高度并发的,我需要它在生成参考号时相当明显。就目前而言,有一个每天运行的任务来重新播种该IDENTITY
列,但由于每天的记录数量很大,如果处理的记录数大于 999999,我就会收到错误消息。
这是我的声明:
DELETE FROM table1 OUTPUT deleted.col1,deleted.col2 INTO view1;
它给了我这个错误:
OUTPUT INTO 子句的目标“view1”不能是视图或公用表表达式。
该视图简单且可更新。为什么我不能使用 OUTPUT 子句插入可更新视图?
我正在使用 SSMS 2012。我正在使用 .PRC、.TAB 和 .UDF 文件。我将这些文件扩展名添加到 SSMS,以便它已经通过工具 > 选项 > 文本编辑器 > 文件扩展名将它们视为 .SQL 文件,但最近 SSMS 已停止识别这些文件(例如,不会使用颜色编码显示它们或允许我对数据库运行它们)。有趣的是,当我从文件中删除文件扩展名时,它会识别它们,因为它选中了“将无扩展名的文件映射到 SQL 查询编辑器”。
有谁知道问题可能是什么?
在 SQL Server 2008 R2 代理中创建作业步骤时,“常规”页面中的第三个下拉列表是“运行方式:”-但这是空的,而且似乎始终是空的!它是做什么用的?
谢谢