在SQL Server 2012中存储查询

时间:2018-05-15 11:11:21

标签: sql-server-2012

如何在SQL Server 2012中存储可以根据关键字插入的查询?

select * from INFORMATION_SCHEMA.COLUMNS where COLUMN_NAME like '%%' order by TABLE_NAME

当我输入 csearch 并按 ctrl + Space 标签替换 csearch <时,此查询必须插入查询窗口/强>

2 个答案:

答案 0 :(得分:0)

您可以在数据库中创建SQL函数和存储过程。可以在需要时调用这些函数。

CREATE FUNCTION CSEARCH
(
    -- Add the parameters for the function here
    <@Param1, sysname, @p1> <Data_Type_For_Param1, , int>
)
RETURNS <Function_Data_Type, ,int>
AS
BEGIN
    -- Declare the return variable here
    DECLARE <@ResultVar, sysname, @Result> <Function_Data_Type, ,int>

    -- Add the T-SQL statements to compute the return value here
    SELECT <@ResultVar, sysname, @Result> = <@Param1, sysname, @p1>

    -- Return the result of the function
    RETURN <@ResultVar, sysname, @Result>

END
GO

在这种情况下,请将SELECT替换为您的查询并运行此脚本。 它将保存在您的数据库中,可以通过将CREATE FUNCTION替换为ALTER FUNCTION来更改。

要调用此函数,请在代码中创建一个简单的SQL连接,然后选择它:

SELECT CSEARCH(param1, param2, ...) AS Function

返回的值将是您在函数内声明的值。

答案 1 :(得分:0)

您可以创建一个过程,然后将其分配给SSMS上的热键。

IF EXISTS(SELECT TOP 1 1 FROM sys.objects WHERE name = 'sp_SelectAllTablesLike')

DROP PROCEDURE sp_SelectAllTablesLike

GO

CREATE PROCEDURE sp_SelectAllTablesLike

@TableName VARCHAR(256)

AS

BEGIN

SELECT * FROM INFORMATION_SCHEMA.COLUMNS where COLUMN_NAME like '%' + @TableName + '%' ORDER BY TABLE_SCHEMA, TABLE_NAME

END

GO

Add the procedure to the SSMS hotkeys

(这里有关于如何将程序添加到SSMS热键的更长解释https://www.sqlshack.com/custom-keyboard-shortcuts-in-sql-server-management-studio-ssms/

重启SSMS。

然后,每按一次Ctrl + 3(或放置它的任何地方),它将执行该过程。如果您有选择,则会自动将其与输入参数绑定。 Select a text, and it will be executed

缺点是,您需要在使用的任何数据库中创建过程。