SSMS自定义键盘查询快捷方式(NoLock)

时间:2011-02-24 15:54:00

标签: tsql sql-server-2008

我在SSMS(2008)中有一个自定义键盘查询快捷方式,其中包含以下t-sql ...

SELECT TOP(50) * FROM 

这允许我只需输入一个表的名称,然后按我的键盘快捷键即可获得该表中的前五十个项目。我遇到的问题是我喜欢使用WITH(NOLOCK)进行查询,因此记录不会被锁定。我还没想出如何将T-SQL输入到键盘查询快捷方式,其中输入位于语句的中间。如何在不诉诸存储过程的情况下合并NoLock?

3 个答案:

答案 0 :(得分:3)

它可能会有点混乱,但您可以使用sp_executesql来避免依赖于定义的存储过程:

sp_executesql N'EXEC(''SELECT TOP(50) * FROM '' + @input + '' WITH(NOLOCK)'')', N'@input varchar(max)', 

答案 1 :(得分:2)

我开发了 SSMSBoost ssms 加载项 - 它具有自动置换功能。 你可以在那里定义:

替换标记:“selt50”

替换字符串:“SELECT TOP(50)* FROM#WITH(NOLOCK)”

#告诉光标将在替换完成后放置

所以,当你输入

selt50 and_press_SPACE

selt50将被

取代

SELECT TOP(50) * FROM # WITH(NOLOCK)

光标闪烁而不是#

ssmsboost附带标准自动置换:

sel - > select * from

upd - > update # set where

deci-> declare @# int

你可以证明他们重新定义它们 它通常是一个很好的插件,带有几个非常有用的ssms工具(首选连接,代码导航等)

答案 2 :(得分:0)

在master中创建存储过程sp_Top50,并为该SP分配快捷方式。 sp_前缀使SQL Server在master中查找存储过程。

create procedure sp_Top50
  @T sysname
as
declare @S nvarchar(200)
set @S = 'select top(50) * from '+quotename(@T)+ ' with(nolock)'
exec (@S)