1.坚持自己的理念,坚持学习,才有美好的明天啊!
2.求真务实,面对现实,敢于挑战,养成良好的习惯,现实自己的目标,追求自己的幸福生活啊!
3.敢于承担,居安思危,克服空难,迎刃而上,突破困境啊!
4.坚持自己的理念,专心致志,实现自我的价值
5.认真.专心.坚持.目标
博客园闪存首页新随笔联系管理订阅订阅 随笔- 2594 文章- 0 评论- 216
如何编写数据库存储过程?
在程序设计的时候,出于安全、效率和扩展性方面的考虑,我们会把很多数据操作都封装为存储过程。
存储过程是已保存的 Transact-SQL 语句集合,或对 Microsoft .NET Framework 公共语言运行时 (CLR) 方法的引用,可接收并返回用户提供的参数。可以创建过程供永久使用,或在一个会话(局部临时过程)中临时使用,或在所有会话(全局临时过程)中临时使用。
启动 SQL Server 的一个实例时,也可以创建并自动运行存储过程。
存储过程现在可以利用T-SQL和托管代码两种方式编写。下面我们主要看看如何使用T-SQL语句快速地编写存储过程
我们来看一下基本语法
CREATE { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ] [ { @parameter [ type_schema_name. ] data_type } [ VARYING ] [ = default ] [ OUT | OUTPUT ] ] [ ,...n ]
[ WITH <procedure_option> [ ,...n ] ]
[ FOR REPLICATION ]
AS { <sql_statement> [;][ ...n ] | <method_specifier> }
[;]
<procedure_option> ::= [ ENCRYPTION ] [ RECOMPILE ] [ EXECUTE_AS_Clause ]
<sql_statement> ::=
{ [ BEGIN ] statements [ END ] }
<method_specifier> ::=
EXTERNAL NAME assembly_name.class_name.method_name
但是,是不是说我们真的要一个一个去编写呢?那样的确很繁琐,尤其对于业务逻辑不是很复杂的情况下。
第一个方法:善用SQL SERVER自带的工具。以SQL Server 2005为例,我们可以通过SQL SERVER Management Studio的上下文菜单来生成代码
image
INSERT INTO [OrderDB].[dbo].[OrderDetails]
([OrderID]
,[LineNumber]
,[ProductID]
,[UnitPrice]
,[Quantity])
VALUES
(<OrderID, int,>
,<LineNumber, tinyint,>
,<ProductID, int,>
,<UnitPrice, decimal(18,2),>
,<Quantity, int,>)
稍加修改就可以变成一个存储过程(Insert操作)
第二个方法:善用第三方工具。我这里推荐一个产品是CodeSmith,它有一个模板,可以在几秒钟之内为一个数据库所有表生成增删改查的存储过程
image
image
2.求真务实,面对现实,敢于挑战,养成良好的习惯,现实自己的目标,追求自己的幸福生活啊!
3.敢于承担,居安思危,克服空难,迎刃而上,突破困境啊!
4.坚持自己的理念,专心致志,实现自我的价值
5.认真.专心.坚持.目标
博客园闪存首页新随笔联系管理订阅订阅 随笔- 2594 文章- 0 评论- 216
如何编写数据库存储过程?
在程序设计的时候,出于安全、效率和扩展性方面的考虑,我们会把很多数据操作都封装为存储过程。
存储过程是已保存的 Transact-SQL 语句集合,或对 Microsoft .NET Framework 公共语言运行时 (CLR) 方法的引用,可接收并返回用户提供的参数。可以创建过程供永久使用,或在一个会话(局部临时过程)中临时使用,或在所有会话(全局临时过程)中临时使用。
启动 SQL Server 的一个实例时,也可以创建并自动运行存储过程。
存储过程现在可以利用T-SQL和托管代码两种方式编写。下面我们主要看看如何使用T-SQL语句快速地编写存储过程
我们来看一下基本语法
CREATE { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ] [ { @parameter [ type_schema_name. ] data_type } [ VARYING ] [ = default ] [ OUT | OUTPUT ] ] [ ,...n ]
[ WITH <procedure_option> [ ,...n ] ]
[ FOR REPLICATION ]
AS { <sql_statement> [;][ ...n ] | <method_specifier> }
[;]
<procedure_option> ::= [ ENCRYPTION ] [ RECOMPILE ] [ EXECUTE_AS_Clause ]
<sql_statement> ::=
{ [ BEGIN ] statements [ END ] }
<method_specifier> ::=
EXTERNAL NAME assembly_name.class_name.method_name
但是,是不是说我们真的要一个一个去编写呢?那样的确很繁琐,尤其对于业务逻辑不是很复杂的情况下。
第一个方法:善用SQL SERVER自带的工具。以SQL Server 2005为例,我们可以通过SQL SERVER Management Studio的上下文菜单来生成代码
image
INSERT INTO [OrderDB].[dbo].[OrderDetails]
([OrderID]
,[LineNumber]
,[ProductID]
,[UnitPrice]
,[Quantity])
VALUES
(<OrderID, int,>
,<LineNumber, tinyint,>
,<ProductID, int,>
,<UnitPrice, decimal(18,2),>
,<Quantity, int,>)
稍加修改就可以变成一个存储过程(Insert操作)
第二个方法:善用第三方工具。我这里推荐一个产品是CodeSmith,它有一个模板,可以在几秒钟之内为一个数据库所有表生成增删改查的存储过程
image
image