博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL模板资源管理器,你用了吗?
阅读量:7128 次
发布时间:2019-06-28

本文共 4625 字,大约阅读时间需要 15 分钟。

SQL Server Management Studio 有个模板资源管理器,不知你用过没有?使用模板创建脚本、自定义模板等功能能大大提高你的工作效率,如果没有尝试过,赶紧去试试吧。很多时候,我们习惯了手写脚本,而不愿意花费精力去研究陌生的工具。

 

 

你可以在通过下面方式打开模板资源管理器  视图->模板资源管理器; 也可以通过快捷键CTRL + ALT + T打开它。如图所示,你可以看见里面已经包含了许多模板了。

 

 

 

你可以点击任何一个模板,查看它的属性,就可以知道这些模板存储在那个地方了,我本地数据的模板存储在C:\Documents and Settings\Administrator\Application Data\Microsoft\Microsoft SQL Server\100\Tools\Shell\Templates\Sql  目录下面

 

模板资源管理器下有SQL Server模板、Analysis Services模板、SQL Server Compact Edition模板三种类型。

在创建自己的模板前,我们来看看系统提供的一些模板打开目录Stored Procedure,选择Create Procedure Basic Template 双击打开,如下图所示

Create Procedure Basic TemplateCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->-- =============================================-- Create basic stored procedure template-- =============================================-- Drop stored procedure if it already existsIF EXISTS (  SELECT *     FROM INFORMATION_SCHEMA.ROUTINES    WHERE SPECIFIC_SCHEMA = N'
' AND SPECIFIC_NAME = N'
' ) DROP PROCEDURE
.
GOCREATE PROCEDURE
.
<@param1, sysname, @p1>
=
, <@param2, sysname, @p2>
=
AS SELECT @p1, @p2GO-- =============================================-- Example to execute the stored procedure-- =============================================EXECUTE
.
,
GO

 

 

然后你在查询菜单下选择“指定模板参数的值”,快捷键(CTRL + SHIFT + M),弹出如下窗台,你可以定义存储过程名、参数以及参数的默认值等(如下图所示),

 

 

定义完后,单击确定,就可以得到如下你想要的存储过程基本定义,然后填写自己的逻辑代码,避免了从头开始一步一步重写。减少不必要的重复劳动。最重要的是它能灵活的定义你自己想要的模板名称。下面来看看一步步定义自己的模板。如图所示:我们首先新建一个名为“Kerry Stored Procedure”的文件夹,然后点击文件夹,新建名为“Create Procedure Basic Template”的模板

 

右键单击新模板,然后单击“编辑”。在“连接到数据库引擎”对话框中,单击“连接”在查询编辑器中打开新模板。

在查询编辑器中创建一个脚本。按照 <parameter_name, data_type, value> 格式在脚本中插入参数。数据类型和数据值区域必须存在,但是可以为空。

在工具栏上,单击“保存”以保存新模板。

这样一个新的模板就建立了,如下所示

自定义的存储过程模板Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->USE [MyAssistant]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF OBJECT_ID('
', N'P') IS NOT NULL BEGIN DROP PROC
;ENDGO--====================================================================================================-- Function : ...........................-- Author : Kerry-- Create Date : 2010-08-11-- Description : ...........................。-------------------------------------------------------------------------------------------------------- 2010-08-12 修改了.....删除了.......... --====================================================================================================CREATE PROCEDURE
.
<@param1, sysname, @p1>
=
, <@param2, sysname, @p2>
=
ASSET NOCOUNT ON;BEGIN TRYEND TRYBEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber ,ERROR_SEVERITY() AS ErrorSeverity ,ERROR_STATE() AS ErrorState ,ERROR_PROCEDURE() AS ErrorProcedure ,ERROR_LINE() AS ErrorLine ,ERROR_MESSAGE() AS ErrorMessage;END CATCHGO

当你要定义一个存储过程的时候,就可以像上面那样创建一个新的存储过程,当然,如果你不习惯上面哪种定义参数的方式,你也可以用下面的方式,把存储过程名、参数等命名为一个特定的存储过程,新建存储过程时、手动在打开的模板里面修改。如下所示,这个可以视个人习惯而定。

代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->USE [MyAssistant]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF OBJECT_ID('USP_StoreProcedureName', N'P') IS NOT NULL BEGIN    DROP PROC USP_StoreProcedureName;ENDGO--====================================================================================================--        Function              :        ...........................--        Author                :        Kerry--        Create    Date        :        2010-08-11--        Description           :        ...........................。--------------------------------------------------------------------------------------------------------        2010-08-12                    修改了.....删除了..........    --====================================================================================================CREATE PROCEDURE [dbo].[USP_StoreProcedureName]    @StartTime            DATETIME,    @EndTime              DATETIME,    @CstartTime           DATETIME,    @CendTime             DATETIMEASSET NOCOUNT ON;BEGIN TRYEND TRYBEGIN CATCH    SELECT   ERROR_NUMBER()        AS ErrorNumber              ,ERROR_SEVERITY()      AS ErrorSeverity            ,ERROR_STATE()         AS ErrorState            ,ERROR_PROCEDURE()     AS ErrorProcedure            ,ERROR_LINE()          AS ErrorLine            ,ERROR_MESSAGE()       AS ErrorMessage;END CATCHGO

转载地址:http://fprel.baihongyu.com/

你可能感兴趣的文章
Nginx Apache Iptable 限制ip并发访问 限制ip连接数
查看>>
IOS 自定义UIBUTTON 直接拖个xib 就能在button上显示多行文本 并且添加了点击的效果...
查看>>
视频码率、帧率、分辨率区别
查看>>
ERP的实施怎样做好知识转移
查看>>
JSP-01-搭建Web应用环境
查看>>
使用Proxmox 和 Deskpool 搭建桌面云系统
查看>>
Walking On My Way
查看>>
struts2拦截器的实现原理及源码剖析
查看>>
[BZOJ4719][P1600][NOIP2016]天天爱跑步[LCA+dfs序+差分]
查看>>
System V 消息队列
查看>>
Python 邮件类
查看>>
在页面上显示服务器端的字体
查看>>
Oracle分页查询=======之伪列的使用
查看>>
Linode安装SSL
查看>>
我的友情链接
查看>>
《C++ 沉思录》阅读笔记——类的反思
查看>>
linux中常用快捷键
查看>>
移动互联网发展
查看>>
结对-贪吃蛇游戏-开发环境搭建过程
查看>>
bzoj 1833: [ZJOI2010]count 数字计数
查看>>