123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- --=============================================
- --SQL脚本规范示例
- --建立日期:2008-01-14
- --编 写 者:唐根平
- --版 本: V1.0
- --=============================================
- /*在每个存储过程、函数、触发器、视图前均需以下这段注释,每个完整的脚本文件头也需要如上所示的注释*/
- --=============================================
- --程序编写:<你的中文姓名>
- --建立日期:<yyyy-mm-dd>
- --功能说明:<说明本模块或本脚本的功能>
- --备 注:<可选,如有其它要特别强调或说明的请加此行;如没有则可省略此行>
- --调用示例:<如果是存储过程、函数则需要此行>
- --程序修改:<可选>
- --修改日期:<可选>
- --修改说明:<可选,每修改一次,请重复本行及上述二行一次>
- --程序修改:<可选>
- --修改日期:<可选>
- --修改说明:<可选,每修改一次,请重复本行及上述二行一次>
- --=============================================
- --**********************************************--
- PRINT'描述接下来的若干段语句的功用,例:开始…………'
- --**********************************************--
- IF EXISTS(某判断)BEGIN
- --执行操作1
- --执行操作2
- END
- IF NOT EXISTS(某判断)BEGIN
- --执行操作3
- --执行操作4
- END
- --执行操作5
- GO
- --**********************************************--
- PRINT'结束…………'
- --**********************************************--
- --**********************************************--
- PRINT'描述本段语句的功能,例:建立表[……]'
- --**********************************************--
- IF NOT EXISTS(SELECT * FROM SYSOBJECTS WHERE NAME=N'表名')
- CREATE TABLE表名
- (
- [字段名1][varchar](10)NOT NULL,
- [字段名2][numeric](5,0)NOT NULL,
- …………,
- [字段名N][varchar](10)
- )GO
- --**********************************************--
- PRINT'新增字段[……],默认值为……,字段含义为……'
- --**********************************************--
- IF NOT EXISTS(SELECT*FROM syscolumns WHERE id=object_id('表名') and NAME='字段名')
- ALTER TABLE[表名] ADD [字段名][字段类型] CONSTRAINT 默认值约束名
- DEFAULT 默认值
- ELSE
- ALTER TABLE[表名]ALTER COLUMN[字段名][字段类型] CONSTRAINT 默认值约束名
- DEFAULT 默认值
- GO
- --**********************************************--
- PRINT'建立索引[……]'
- --**********************************************--
- IF EXISTS(SELECT*FROM sysindexes WHERE name=N'索引名' AND id=object_id(N'表名'))
- DROP INDEX[表名].[索引名]
- GO
- CREATE INDEX[索引名]ON[表名]([字段名])
- GO
- --**********************************************--
- PRINT'建立视图[……]'
- --**********************************************--
- IF EXISTS(SELECT*FROM sysobjects WHERE id=object_id(N'视图名')and OBJECTPROPERTY(id,N'IsView')=1)
- DROP VIEW[视图名]
- GO
- --=============================================
- --程序编写:<你的中文姓名>
- --建立日期:<yyyy-mm-dd>
- --功能说明:<说明本模块或本脚本的功能>
- --备注:<可选,如有其它要特别强调或说明的请加此行;如没有则可省略此行>
- --=============================================
- CREATE VIEW[视图名] AS
- --你的SELECT语句
- SELECT……FROM……
- GO
- --**********************************************--
- PRINT'建立存储过程[…………]'
- --**********************************************--
- IF EXISTS(SELECT*FROM sysobjects WHERE id=object_id(N'存储过程名') AND OBJECTPROPERTY(id,N'IsProcedure')=1)
- DROP PROCEDURE[存储过程名]
- GO
- --=============================================
- --程序编写:<你的中文姓名>
- --建立日期:<yyyy-mm-dd>
- --功能说明:<说明本模块或本脚本的功能>
- --备注:<可选,如有其它要特别强调或说明的请加此行;如没有则可省略此行>
- --调用示例:<如果是存储过程、函数则需要此行>
- --=============================================
- CREATE PROCEDURE[存储过程名]
- @参数1参数1类型,--参数1含义说明
- @参数2参数2类型,--参数2含义说明
- …………
- @参数N参数N类型--参数N含义说明
- AS
- BEGIN
- --关闭中间过程的统计信息
- SET NOCOUNT ON
- --定义变量
- DECLARE @sql NVarchar(4000)
-
- --进行你自己的操作
- --处理结束,如要在中途退出存储过程,则可直接调用RETURN
- --RETURN
- END
- GO
- --**********************************************--
- PRINT'建立函数[…………]'
- --**********************************************--
- IF EXISTS(SELECT*FROM sysobjects WHEREid=object_id(N'标量值函数名')AND xtype in(N'FN',N'IF',N'TF'))
- DROP FUNCTION[标量值函数名]
- GO
- --=============================================
- --程序编写:<你的中文姓名>
- --建立日期:<yyyy-mm-dd>
- --功能说明:<说明本模块或本脚本的功能>
- --备注:<可选,如有其它要特别强调或说明的请加此行;如没有则可省略此行>
- --调用示例:SELECTdbo.[标量值函数名](参数1)
- --=============================================
- CREATE FUNCTION[标量值函数名]
- (
- @参数1 参数1类型 --参数1含义说明
- )
- RETURNS 返回值类型
- AS
- BEGIN
- --定义返回变量
- DECLARE @ResultVar 返回值类型
- --给返回变量赋值
- SET @ResultVar = ……
- --返回函数计算结果
- RETURN @ResultVar
- END
- GO
- --**********************************************--
- PRINT'建立函数[…………]'
- --**********************************************--
- IF EXISTS(SELECT*FROM sysobjects WHERE id=object_id(N'内联表值函数名')AND xtype in(N'FN',N'IF',N'TF'))
- DROP FUNCTION[内联表值函数名]
- GO
- --=============================================
- --程序编写:<你的中文姓名>
- --建立日期:<yyyy-mm-dd>
- --功能说明:<说明本模块或本脚本的功能>
- --备注:<可选,如有其它要特别强调或说明的请加此行;如没有则可省略此行>
- --调用示例:SELECT*FROMdbo.[内联表值函数名](参数1)
- --=============================================
- CREATE FUNCTION[内联表值函数名]
- (
- @参数1 参数1类型 --参数1含义说明
- )
- RETURNS TABLE
- AS
- RETURN
- (
- --用一条SELECT语句返回结果,此种函数可相当于带参数的视图使用
- SELECT * FROM [某表] WHERE 某字段=@参数1
- )
- GO
- --**********************************************--
- PRINT'建立函数[…………]'
- --**********************************************--
- IF EXISTS(SELECT * FROM sysobjects WHERE id=object_id(N'多语句表值函数函数名')AND xtype in(N'FN',N'IF',N'TF'))
- DROP FUNCTION[多语句表值函数函数名]
- GO
- --=============================================
- --程序编写:<你的中文姓名>
- --建立日期:<yyyy-mm-dd>
- --功能说明:<说明本模块或本脚本的功能>
- --备注:<可选,如有其它要特别强调或说明的请加此行;如没有则可省略此行>
- --调用示例:SELECT*FROMdbo.[多语句表值函数函数名](参数1)
- --=============================================
- CREATE FUNCTION[多语句表值函数函数名]
- (
- @参数1 参数1类型 --参数1含义说明
- )
- RETURNS
- @多语句表值函数的虚拟表名TABLE
- (
- [字段名1]字段类型1, --含义说明
- [字段名1]字段类型2 --含义说明
- )
- AS
- BEGIN
- --往虚拟表中插入记录
- INSERT INTO @多语句表值函数的虚拟表名 VALUES(值1,值2)
- --返回最后的结果
- RETURN
- END
- GO
- --**********************************************--
- PRINT'建立触发器[…………]'
- --**********************************************--
- IF EXISTS(SELECT * FROM sysobjects WHEREid=object_id(N'触发器名') AND xtype in(N'TR'))
- DROP TRIGGER[触发器名]
- GO
- --=============================================
- --程序编写:<你的中文姓名>
- --建立日期:<yyyy-mm-dd>
- --功能说明:<说明本模块或本脚本的功能>
- --备注:<可选,如有其它要特别强调或说明的请加此行;如没有则可省略此行>
- --=============================================
- CREATE TRIGGER[触发器名]
- ON 表名
- <AFTER或FOR> <INSERT或DELETE或UPDATE>
- AS
- BEGIN
- SET NOCOUNT ON;
- --插入触发器内部执行语句
- END
- GO
- --**********************************************--
- PRINT'描述接下来的若干段语句的功用,例:开始处理……数据'
- --**********************************************--
- PRINT'往表[表名]中插入或修改记录'
- IF NOT EXISTS(SELECT * FROM 表名 WHERE 主键字段='某值')
- INSERT INTO 表名(字段列表)
- VALUES(值列表)
- ELSE
- UPDATE 表名 SET 字段名1 = 值1,字段名2 = 值2,……
- WHERE 主键字段 = '某值'
- GO
- --**********************************************--
- PRINT '结束…………'
- --**********************************************--
- --**********************************************--
- PRINT '--所有操作结束--'
- --**********************************************--
|