【问题标题】:Shortcut for search functionality in SQL ServerSQL Server 中搜索功能的快捷方式
【发布时间】:2014-06-10 18:15:33
【问题描述】:

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

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

现在我使用下面的快捷方式相同

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

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

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

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

谢谢,

维沙尔

【问题讨论】:

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


    【解决方案1】:

    我将以下存储过程添加到我的 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 查询窗口中键入 user,突出显示它并按下快捷键组合,那么我会得到当前数据库中包含 user 的每个存储过程的列表

    如果您将我的选择替换为

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

    那么你就可以实现你的目标了。

    【讨论】:

    • DeanOC:谢谢!!!我真的很欣赏你的方法。这很棒。但就我而言,我无权访问 Master 来执行此操作。所以我试图在单个 Key 上创建、执行和删除 proc,这样没有人会知道我创建了一些供个人使用的程序(因为它一旦使用就被删除了)。很抱歉说需要任何其他方法..但是你的方法很糟糕。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    相关资源
    最近更新 更多