小编Mar*_*lli的帖子

如何在毫秒的时间内在SQL Server中打印GETDATE()?

我想SELECT GETDATE()在SQL Server 2008中打印,我需要毫秒的时间(这是为了调试目的 - 找到sp的执行时间)

我发现了这个差异

  • print GETDATE()返回2011-03-15 18:43:44.100
  • 2011-03-15 18:43:44.100返回2011年3月15日下午6:44

我认为SQL Server会自动对打印功能进行类型转换.

我需要打印这样的日期 SELECT GETDATE()

谢谢你的帮助.

sql sql-server datetime getdate sql-server-2008

85
推荐指数
4
解决办法
17万
查看次数

如何找到锁定我的表的内容

我有一个SQL表突然无法返回数据,除非我在末尾包含"with(nolock)",这表示我的表上有某种锁.我已经用dm_tran_locks进行了一些实验,以确定表中实际上存在多个锁,但是如何识别锁定它们的是什么(即dm_tran_locks的请求元素)?

编辑:我知道SQL 2005之前的sp_lock,但现在不推荐使用sp,AFAIK正确的做法是使用dm_tran_locks.我正在使用SQL Server 2008 R2.

sql sql-server locking query-optimization sql-server-2008-r2

42
推荐指数
6
解决办法
29万
查看次数

如何找出spid状态暂停的原因?spid在等待什么资源?

我跑了EXEC sp_who2 78,我得到以下结果:

sp_who2的结果为spid 78

我怎样才能找到其状态暂停的原因?

INSERT基于昂贵的查询,此过程非常繁重.一个大SELECT从几个表中获取数据,并写一些3-4百万行不同的表.

没有锁/块.

waittype它与是CXPACKET.我能理解,因为你可以在下面的图片中看到9个78.

关注我和我真正想知道的是为什么SPID78 号中的第1号被暂停.

我知道当a的状态SPID被暂停时,它意味着进程正在等待资源,并且当它获取其资源时它将恢复.

我怎样才能找到更多这方面的细节?什么资源?为什么不可用?

我使用了下面的代码以及其中的变化,但是我还能做些什么来找出SPID暂停的原因?

select * 
from sys.dm_exec_requests r
join sys.dm_os_tasks t on r.session_id = t.session_id
where r.session_id = 78
Run Code Online (Sandbox Code Playgroud)

我已经习惯了EXEC sp_who2 78.我得到的这个特殊spid78的结果如下:(分为3个图片以适应屏幕)

在此输入图像描述

sql sql-server optimization query-optimization sql-tuning

35
推荐指数
2
解决办法
6万
查看次数

同时替换多个值 - 以便将字符串转换为数字

我试图将varchar字段转换为数字,但是,该字段中有一组常见字符需要删除才能成功将其转换为数字.

该字段的名称是UKSellPrice1

我需要从UKSellPrice1中删除以下字符串,然后再将其转换为数字:

'.00'
'£'
'n/a'
'$'
'#N/A'
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?

目前我有以下内容: 在此输入图像描述

;WITH R0 AS (

SELECT StyleCode
      ,ColourCode       
      ,UKSellPrice1= CASE WHEN CHARINDEX('.00',UKSellPrice1,1) > 0 
                          THEN REPLACE (UKSellPrice1,'.00','') 
                          ELSE UKSellPrice1 END
      ,UKSellPrice2
 FROM dbo.RangePlan
)
SELECT * 
FROM R0
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

12
推荐指数
2
解决办法
4万
查看次数