如何在 SQL Server 中创建 TSQL 代码模板

355 阅读4分钟

如何在 SQL Server 中创建 TSQL 代码模板

模板可以帮助您快速开始编写 TSQL 代码。Microsoft 的 SQL Server 团队提供了许多开箱即用的 TSQL 代码模板。但是您知道可以通过创建自己的模板来添加到可用模板中吗?

阅读:探索 SQL Server Management Studio 中的模板。

要创建代码模板,您必须首先打开*“模板浏览器”。这是通过使用Ctrl+Alt+T快捷方式或通过单击SQL Server Management Studio (SSMS) 主菜单中“编辑”菜单项下的“**模板资源管理器”项来完成的。执行此操作时,将显示“模板浏览器”*对话框菜单,如下所示:

自定义 TSQL 代码模板

创建新模板时,您可以在现有文件夹中创建它们,或仅为您的模板创建一个新文件夹。要创建新的模板文件夹,请右键单击上面屏幕截图中显示的*“SQL Server 模板”项。然后将鼠标悬停在上下文菜单中的“新建”项上,然后单击“文件夹”*项,如下所示:

创建自定义 TSQL 代码模板

当您这样做时,一个新文件夹将被添加到模板列表的底部,您将有机会随意命名该文件夹。出于演示目的,我创建了一个名为*“Demo Folder”的文件夹*。

要在文件夹中创建新模板,请右键单击要在其中创建新模板的文件夹。对于这个演示,我将在我刚刚创建的新创建的文件夹(“演示文件夹”)中创建一个新模板。当我右键单击*“演示文件夹”时*,将显示上面显示的相同上下文菜单。这次不是选择*“文件夹”项,而是选择“模板”项,然后将我的新模板命名“MyDemo”*,如下所示:

TSQL 模板

要为*“MyDemo”模板构建 TSQL 代码,请右键单击该项目,然后从上下文菜单中选择“编辑”项目。执行此操作后,将显示一个名为“MyDemo.SQL”的新查询窗口。我现在可以在这个新窗口中为我的演示模板编写代码。对于“MyDemo”*模板,我将在新的查询窗口中输入以下代码。此代码将显示过程缓存中性能最差的前 10 个 TSQL 命令,基于它已执行的次数:

SELECT TOP 10 QP.query_plan AS [查询计划], 
       ST.text AS [查询文本],
       QS.creation_time AS [创建时间], 
       QS.last_execution_time AS [上次执行时间], 
       QS.execution_count AS [执行次数], 
       QS.total_worker_time AS [总CPU时间],
       QS.total_logical_reads AS [逻辑IO计数]
从 sys.dm_exec_query_stats AS QS
   交叉申请 sys.dm_exec_query_plan(QS.plan_handle) AS QP
   交叉应用 sys.dm_exec_sql_text(QS.plan_handle) ST
ORDER BY [执行次数] DESC;

此时,如果我们没有任何想要或需要支持的参数,我们可以关闭并保存查询窗口。但是对于我们的演示,我们想在我们的模板中添加一个参数。该参数将用于调整从此查询返回的行数。我们将创建的参数允许我们将上面代码中的*“Top 10”*文本更改为我们为参数标识的行数,或者,如果我们不想更改返回的行数的值,模板,它将使用默认值,它只会返回 10 行。要添加参数,我们将上面的代码修改为如下所示:

SELECT TOP P.query_plan AS [查询计划], 
       ST.text AS [查询文本],
       QS.creation_time AS [创建时间], 
       QS.last_execution_time AS [上次执行时间], 
       QS.execution_count AS [执行次数], 
       QS.total_worker_time AS [总CPU时间],
       QS.total_logical_reads AS [逻辑IO计数]
从 sys.dm_exec_query_stats AS QS
   交叉申请 sys.dm_exec_query_plan(QS.plan_handle) AS QP
   交叉应用 sys.dm_exec_sql_text(QS.plan_handle) ST
ORDER BY [执行次数] DESC;

如您所见,我们将原始代码中的值*“10”*更改为如下所示:

 <返回多少行,int,10>

小于*“<”大于**“>”字符之间的文本表示我们添加的参数。定义一个参数有三个不同的部分,每个部分用逗号“,”分隔。第一部分是参数的名称。在我们的例子中,该参数称为“返回多少行”。第二部分是数据类型*。为此,我们指定了*“int”。最后一部分是默认值*。

创建模板的最后一步是将代码保存在*“MyDemo.SQL”*查询窗口中。我们可以通过关闭窗口来做到这一点。

这就是创建包含参数的自定义 TSQL 代码模板的全部内容。下次您有一些代码需要反复使用时,请考虑为常用代码创建一个模板。通过使用模板,您可以使用参数快速创建和修改示例代码。