SQL模板资源管理器,你用了吗?
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 Template
-- Create basic stored procedure template
-- =============================================
-- Drop stored procedure if it already exists
IF EXISTS (
SELECT *
FROM INFORMATION_SCHEMA.ROUTINES
WHERE SPECIFIC_SCHEMA = N'<Schema_Name, sysname, Schema_Name>'
AND SPECIFIC_NAME = N'<Procedure_Name, sysname, Procedure_Name>'
)
DROP PROCEDURE <Schema_Name, sysname, Schema_Name>.<Procedure_Name, sysname, Procedure_Name>
GO
CREATE PROCEDURE <Schema_Name, sysname, Schema_Name>.<Procedure_Name, sysname, Procedure_Name>
<@param1, sysname, @p1> <datatype_for_param1, , int> = <default_value_for_param1, , 0>,
<@param2, sysname, @p2> <datatype_for_param2, , int> = <default_value_for_param2, , 0>
AS
SELECT @p1, @p2
GO
-- =============================================
-- Example to execute the stored procedure
-- =============================================
EXECUTE <Schema_Name, sysname, Schema_Name>.<Procedure_Name, sysname, Procedure_Name> <value_for_param1, , 1>, <value_for_param2, , 2>
GO

然后你在查询菜单下选择“指定模板参数的值”,快捷键(CTRL + SHIFT + M),弹出如下窗台,你可以定义存储过程名、参数以及参数的默认值等(如下图所示),
定义完后,单击确定,就可以得到如下你想要的存储过程基本定义,然后填写自己的逻辑代码,避免了从头开始一步一步重写。减少不必要的重复劳动。最重要的是它能灵活的定义你自己想要的模板名称。下面来看看一步步定义自己的模板。如图所示:我们首先新建一个名为“Kerry Stored Procedure”的文件夹,然后点击文件夹,新建名为“Create Procedure Basic Template”的模板
右键单击新模板,然后单击“编辑”。在“连接到数据库引擎”对话框中,单击“连接”在查询编辑器中打开新模板。
在查询编辑器中创建一个脚本。按照
<parameter_name, data_type, value>
格式在脚本中插入参数。数据类型和数据值区域必须存在,但是可以为空。在工具栏上,单击“保存”以保存新模板。
这样一个新的模板就建立了,如下所示
自定义的存储过程模板
USE [MyAssistant]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('<Procedure_Name>', N'P') IS NOT NULL
BEGIN
DROP PROC <Procedure_Name>;
END
GO
--====================================================================================================
-- Function : ...........................
-- Author : Kerry
-- Create Date : 2010-08-11
-- Description : ...........................。
------------------------------------------------------------------------------------------------------
-- 2010-08-12 修改了.....删除了..........
--====================================================================================================
CREATE PROCEDURE <Schema_Name, sysname, Schema_Name>.<Procedure_Name, sysname, Procedure_Name>
<@param1, sysname, @p1> <datatype_for_param1, , int> = <default_value_for_param1, , 0>,
<@param2, sysname, @p2> <datatype_for_param2, , int> = <default_value_for_param2, , 0>
AS
SET NOCOUNT ON;
BEGIN TRY
END TRY
BEGIN 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 CATCH
GO
当你要定义一个存储过程的时候,就可以像上面那样创建一个新的存储过程,当然,如果你不习惯上面哪种定义参数的方式,你也可以用下面的方式,把存储过程名、参数等命名为一个特定的存储过程,新建存储过程时、手动在打开的模板里面修改。如下所示,这个可以视个人习惯而定。

代码
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('USP_StoreProcedureName', N'P') IS NOT NULL
BEGIN
DROP PROC USP_StoreProcedureName;
END
GO
--====================================================================================================
-- Function : ...........................
-- Author : Kerry
-- Create Date : 2010-08-11
-- Description : ...........................。
------------------------------------------------------------------------------------------------------
-- 2010-08-12 修改了.....删除了..........
--====================================================================================================
CREATE PROCEDURE [dbo].[USP_StoreProcedureName]
@StartTime DATETIME,
@EndTime DATETIME,
@CstartTime DATETIME,
@CendTime DATETIME
AS
SET NOCOUNT ON;
BEGIN TRY
END TRY
BEGIN 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 CATCH
GO

SQL模板资源管理器,你用了吗?的更多相关文章
- Sql Server系列:Microsoft SQL Server Management Studio模板资源管理器
模板资源管理器是Microsoft SQL Server Management Studio的一个组件,可以用来SQL代码模板,使用模板提供的代码,省去每次都要输入基本代码的工作. 使用模板资源管理器 ...
- SQL server2008-对象资源管理器
对象资源管理器:数据库 .安全性.服务器对象.复制.管理 .SQL server代理 六部分组成
- sql server 对象资源管理器(一)
当需要查看具体数据库的所有用户表.存储过程等创建修改等脚本的时候,可以借用视图中的对象资源管理器的详细信息里面获取. 具体操作如下图所示:
- SQL Server Management Studio的对象资源管理器的使用
1.查看 2.对象资源管理器 3.点到某个表的身上 4.出现以下图片,因为有时动态创建的触发器,刷新表下面的触发器可能不出来,所以来这里面找
- OCM_第十二天课程:Section6 —》数据库性能调优_ 资源管理器/执行计划
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
- Oracle资源管理器(二)-- 创建和使用数据库资源计划
(参考 http://blog.csdn.net/mrluoe/article/details/7969436 -- 整理并实践通过) 第1步,创建3个用户 SQL> create user s ...
- Oracle资源管理器介绍(一)
数据库资源管理器通过控制数据库内部的执行调度来控制资源在各个会话之间的分布.通过控制所要运行的会话以及会话运行的时间长度,数据库资源管理器可以确保资源分布与计划指令相匹配,因此也符合业务目标. ...
- SQL语句构建器类
问题 Java程序员面对的最痛苦的事情之一就是在Java代码中嵌入SQL语句.这么来做通常是由于SQL语句需要动态来生成-否则可以将它们放到外部文件或者存储过程中.正如你已经看到的那样,MyBatis ...
- 第七课 GC资源管理器实验
<GC资源管理器> 要求: 1.定义2个资源消耗组(OLTP事务处理资源消耗组和DSS数据仓库资源消耗组) 2.创建一个日程计划schedule 3.对于OLTP资源消耗组,我们最多不 ...
随机推荐
- 【数论】洛谷P1414又是毕业季II
题目背景 "叮铃铃铃",随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业 ...
- 【转载】OAuth2 流程
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版. 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为R ...
- Grails框架使用指南
Grails框架使用指南,详解Grails框架!cnxieyang@163.com
- Pandas系列之入门篇——HDF5
Pandas系列之入门篇--HDF5 简介 HDF5(层次性数据格式)作用于大数据存储,其高效的压缩方式节约了不少硬盘空间,同时也给查询效率带来了一定的影响, 压缩效率越高,查询效率越低.pandas ...
- CTF---Web入门第十六题 天下武功唯快不破
天下武功唯快不破分值:10 来源: 北邮天枢战队 难度:易 参与人数:10787人 Get Flag:2264人 答题人数:3373人 解题通过率:67% 看看响应头 格式:CTF{ } 解题链接: ...
- HDU2973(威尔逊定理)
YAPTCHA Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- NYOJ201作业题
作业题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 小白同学这学期有一门课程叫做<数值计算方法>,这是一门有效使用数字计算机求数学问题近似解的方法与过程, ...
- hdu_1573 X问题(不互素的中国剩余定理)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1573 X问题 Time Limit: 1000/1000 MS (Java/Others) Me ...
- C#的改进特性
1.初始器 当你新建一个对象实例的时候,是否遇到下面这种情况: class a = new class(); a.item1 = "; a.item2 = "; 或者写一个构造函数 ...
- .NET MongoDB Driver GridFS 2.2原理及使用示例
一.API解读 1 GridFSBucketOptions 1)public string BucketName { get; set; } 获取或设置bucket名称 2)public int Ch ...