SQL Server中搜索功能的快捷方式

时间:2014-06-10 06:38:38

标签: sql sql-server sql-server-2008 tsql keyboard-shortcuts

我想为下面的SQL代码创建快捷方式

DECLARE @Proc_Name VARCHAR(255)
SET @Proc_Name ='norway'
SELECT * FROM sys.tables WHERE name LIKE '%' + @Proc_Name + '%'

现在我正在使用下面的快捷方式 enter image description here

然后我输入{LIKE'%test%'}并按Ctrl + 8。

但我想让它更简化格式(就像我可以输入{test}并按Ctrl + 8)以便我可以快速使用它。

我以不同的方式尝试相同,例如创建proc>然后执行>并按快捷键按下它。欲了解更多信息,请访问以下链接:

Single line GO(Batch) statement giving error in SQL Server?

谢谢,

维沙尔

1 个答案:

答案 0 :(得分:0)

我有以下存储过程,我添加到SQL Server上的主数据库

USE [master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[SP_FindAllReferences]
@targetText nvarchar(128)
AS
BEGIN
    SET NOCOUNT ON;

    declare @origdb nvarchar(128)
    select @origdb = db_name()

    declare @sql nvarchar(1000)

    set @sql = 'USE [' + @origdb +'];' 
    set @sql += 'select object_name(m.object_id), m.* '
    set @sql += 'from sys.sql_modules m  where m.definition like N' + CHAR(39) + '%' + @targetText + '%' + CHAR(39)

    exec (@sql)

    SET NOCOUNT OFF;
END

然后我将dbo.SP_FindAllReferences添加到我的一个SSMS键盘快捷键中,以便我可以在服务器上任何数据库的上下文中搜索文本。

例如,如果我在SSMS查询窗口中键入用户,请突出显示它并按快捷键组合,然后我会获得当前数据库中包含用户的每个存储过程的列表

如果用

替换我的选择
set @sql = 'USE [' + @origdb +'];' 
set @sql += 'Select * FROM sys.tables WHERE name LIKE N' + CHAR(39) + '%' + @targetText + '%' + CHAR(39)

然后你就能实现目标。