小编rob*_*rtc的帖子

计算列中使用的标量函数,更新函数的最干净方法是什么?

我想更新我们数据库中的标量函数。此函数用于键表中的多个计算列,因此如果我尝试更新它,则会出现依赖项错误。我可以显式删除列,更新函数并重新添加列,但是,无需过多关注,这将更改列顺序并可能产生其他意想不到的后果。我想知道是否有更清洁的方法?

sql-server-2005 sql-server-2008 functions

10
推荐指数
1
解决办法
1618
查看次数

在数据序列中选择“边缘”记录

我有一个按日期顺序运行的项目表,每个条目都有开始和结束:

ID | Start            | End
----------------------------------------
1  | 2012-08-20 00:00 | 2012-08-20 23:59 
2  | 2012-08-21 00:00 | 2012-08-21 23:59 
3  | 2012-08-22 00:00 | 2012-08-22 23:59 
4  | 2012-08-23 00:00 | 2012-08-23 23:59 
5  | 2012-08-24 00:00 | 2012-08-24 23:59 
6  | 2012-08-28 00:00 | 2012-08-28 23:59 
7  | 2012-08-29 00:00 | 2012-08-29 23:59 
8  | 2012-08-30 00:00 | 2012-08-30 23:59
Run Code Online (Sandbox Code Playgroud)

请注意,数据中存在差距(周末和银行假期)。是否可以编写一个查询来选择间隙边缘的记录?我想要的是一种通用的方式来结束这样的事情:

ID | Start            | End
----------------------------------------
1  | 2012-08-20 09:00 | 2012-08-20 23:59 
2  | 2012-08-21 …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 sql-server-2008 t-sql gaps-and-islands

6
推荐指数
1
解决办法
321
查看次数

这两个索引声明之间有什么区别,我是否都需要?

我正在检查一个带有“显示估计执行计划”的脚本,它为添加到数据库的索引提出了一些建议。我添加了它们,脚本确实运行得更快了。现在我正在考虑将这些放入我们的标准表单中以包含在我们的常规升级脚本中,我注意到可能存在冗余:

CREATE NONCLUSTERED INDEX [TableA_ColA]
ON [dbo].[TableA] ([ColA])
INCLUDE ([ColB])
GO

CREATE NONCLUSTERED INDEX [TableA_ColB_ColA]
ON [dbo].[TableA] ([ColB],[ColA])
GO
Run Code Online (Sandbox Code Playgroud)

我可以从文档中看到就空间使用而言,两个索引之间存在一些差异,但在这种情况下ColAisintColBis nvarchar(255),远远低于 900 字节的限制,所以我不确定INCLUDE第一个索引中的是必要的。

那么这只是执行计划分析器的任意结果吗?在我看来,如果我有第二个索引,第一个索引是多余的吗?

index sql-server index-tuning

4
推荐指数
1
解决办法
144
查看次数