在“需要帮助对 Sql Server 2005 死锁场景进行故障排除”的问题中,有人建议使用DBCC TRACEON (1204, -1)全局跟踪死锁。
当在 BOL 中阅读有关此命令时,它指出仅当用户或应用程序不在系统上同时运行语句时才应使用它。这是否意味着在启用此跟踪标志时我们必须处于单用户模式?此外,为什么需要它,遵循建议是否重要?(在始终运行的生产系统中似乎有点难以遵循。)
有时在具有多列的表中插入数据时,如果插入语句不应该失败,知道必须指定哪些列会很有用。
我写了这个查询来找出哪些列不可为空、标识、计算、时间戳和没有默认值。
select *
from sys.columns
where object_id = object_id('<table>') and
is_nullable = 0 and
is_identity = 0 and
is_computed = 0 and
default_object_id = 0 and
type_name(system_type_id) <> 'timestamp'
Run Code Online (Sandbox Code Playgroud)
此检查中是否应包含任何其他属性?
我正在使用 Red Gate SQL Compare 根据 SVN 和数据库之间的差异创建发布脚本。这导致脚本包含一堆表和过程更改,并且工作正常。然而,有一件事让我感到困惑,它使用了可序列化的事务隔离级别。
我知道它对 dml 语句的作用,但我不确定它对 ddl 意味着什么。有人可以启发我,也许举个例子吗?