我有一个查询,我希望随机排序结果记录。它使用聚集索引,所以如果我不包括order by
它,它可能会按照该索引的顺序返回记录。如何确保随机行顺序?
我知道它可能不是“真正的”随机,伪随机足以满足我的需要。
我今天在我们的数据库中遇到了一个视图,其中 where 子句中的第一个语句是where 1 = 1
. 这不应该对每条记录都返回 true 吗?如果不过滤任何记录,为什么有人会写这个?
我听说过 SQL Server 默认保留的统计信息。他们在跟踪什么,我如何使用这些信息来改进我的数据库?
我有一个包含四列的表,这些列都是不可为空的,并且数据是这样的,需要所有四列来区分唯一记录。这意味着如果我要创建一个主键,它需要包含所有列。对表的查询几乎总是拉回单个记录,即所有列都将在查询中被过滤。
由于需要搜索每一列,拥有主键对我有好处吗(除了强制记录的唯一性)?
我知道两者之间的含义或意图可能有所不同,但是聚集主键和聚集唯一索引之间是否存在任何行为或性能差异?
我知道在 SQL 管理工作室中,我可以右键单击表/触发器/键和script object as...
. 给定对象的名称,有没有办法以编程方式执行此操作?
如果是这样,有没有办法找到与给定表关联的所有对象(主键、外键、触发器)并以编程方式编写所有这些对象?
我继承了一个数据库,其中包含几个 1000-1500 行长的过程,复杂的嵌套子选择在某些地方深达 7 或 8 层。为了我自己的理智,我迫切需要重构它们,但是我怎么能以任何程度的信心开始这样做呢?
如果这是 .Net,我会编写单元测试 - 您是否推荐类似的方法?
我最近发现 SQL Server 2005 不允许newid()
在用户定义的函数中使用。为什么是这样?
我有一个适合我需求的替代解决方案,所以我不是在寻找解决这个问题的方法。我很好奇为什么设计师会做出这个决定。
目前,每当我编写一个添加可以包含空值的列的查询时,我都会将每个字段包装在isnull
or 中coalesce
,例如coalesce(score1,0) + coalesce(score2,0)
. 有没有更好的方法来处理这个问题,或者这是标准做法?
我经常发现自己想要过滤或排序通过exec
ing 存储过程返回的结果- 例如sp_who2
按登录或 CPU 时间排序输出,或按主机名过滤它。实现这一目标的最佳方法是什么?