很多查询类的存储过程会返回一个表结构的结果集,如果在其他存储过程中需要用到这个结果集,为了避免编写重复的sql脚本,可以直接使用前者的查询结果。如,存储过程sp_GetBorrowRecord @BeginTime,@EndTime 可以查询出某一时间范围(开始时间@BeginTime,结束时间@EndTime)内的所有借书记录。这个存储过程可以用于对借书记录的查询页面。
现在需要实现另一个功能:将某时间段内的借书记录进行汇总分析。如按被借阅的书籍类型...
--存储过程的创建和调用演示 ------------------------------------------------------------------------------------------------- --1.不带参数的存储过程的创建
create procedure PRO_With_No_Paramas Begin --begin可省略select * from scend --end可省略
--调用exec PRO_With_No_Param--2.带参数的存储过程的创建
create procedure PRO_With_Param(@Sno char(5),@Cno char(1))asBeginselect * from SC where Sno=@Sno and C...
sql存储过程与sql语句的区别:从以下几个方面考虑:1.编写:存储过程:编写比较难;sql语句:相对简单;2.性能:存储过程:高,可移植性高,复用性高;sql语句:低,可移植性差,不可复用;3.安全:存储过程:比sql语句相对来说安全;sql语句:参数化比较安全;4.网络传输:存储过程:数据量小,减少网络数据传输量,只需存储过程名即可;sql语句:数据类量大,占用带宽大;5.速度:存储过程:速度快,已经编译过了;sql语句:预编...
创建存储过程 表名和比较字段可以做参数的存储过程 Create PROCEDURE sp_getTeacherInfo @TblName nvarchar(30), -- 表名 @CmpStr nvarchar(30), -- 参与比较的值 @TblAtr nvarchar(30) -- 参与比较的字段 AS DECLARE @sql varchar(4000) SET @sql = select * from + @TblName + where + @TblAtr + = + @CmpStr EXEC (@sql) 表 tbl_TeacherInfo Exec sp_getTeacherInfo tbl_TeacherInfo,TeaNo, 07417502 // 注意:像这样的调用是...
use 数据库名称declare @tname varchar(8000)set @tname=select @tname=@tname + Name + , from sysobjects where xtype=Uselect @tname=drop table + left(@tname,len(@tname)-1)
print @tnameexec(@tname)go
use 数据库名称declare @tname varchar(8000)set @tname=select @tname=@tname + Name + , from sysobjects where xtype=Pselect @tname=drop Procedure + left(@tname,len(@tname)-1)
print @tnameexec(@tname)go
--删除存储过程 drop proc BuyFriut
二、触发器
--触发器,特殊的存储过程,执行的时间和存储过程不一样,存储过程在调用的时候执行,触发器是在执行某种操作的时候触发执行,相当于C#里面的事件
触发器为特殊类型的存储过程,可在执行语言事件时自动生效。SQL Server 包括三种常规类型的触发器:DML 触发器、DDL 触发器和登录触发器。
当服务器或数据库中发生数据定义语言 (DDL) 事件时将调用 DDL 触发器。登录触发器将为...
存储过程的优缺点◆优点:执行速度更快。存储过程只在创造时进行编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程执行速度更快。存储过程用于处理复杂的操作时,程序的可读性更强、网络的负担更小。使用存储过程封装事务性能更佳。能有效的放注入,安全性更好。可维护性高,在一些业务规则发生变化时,有时只需调整存储过程即可,而不用改动和重编辑程序。更好的代码重用。◆ 缺点:存储过程将给服务器带来额外的压力。...
Microsoft included several hundred stored procedures in the various versions of Microsoft SQL Server and it has documented a good percentage of them. But many stored procedures remain undocumented. Some are used within the Enterprise Manager GUI in SQL 2000 and were not intended to be used by other processes. Microsoft has slated some of these stored procedures to be removed (or they have been rem...
在一些系统中,经理要生成单据号,为了不使多台客户端生成的单据号重复,一般要在服务端生成这种流水号,本文是在数据库中生成流水号,并且可以生成多种类型的单据号(比如销售单据号,盘点单据号,进货单据号等),利用数据库锁的原理,先看一下SQL语句:CREATE PROC [dbo].[getlsh]
@lx VARCHAR(6) ,
@lsh VARCHAR(30) OUTPUT
AS
BEGIN
--启动事务处理
DECLARE@tran_point INT --控制事务嵌套
...
ORACLE 提供可以把 PL/SQL 程序存储在数据库中,并可以在任何地方来运行它。这样就叫存储过程或函数。过程和函数统称为 PL/SQL 子程序,他们是被命名的 PL/SQL 块,均存储在数据库中,并通过输入、输出参数或输入/输出参数与其调用者交换信息。 过程和函数的唯一区别是函数总向调用者返回数据,而过程则不返回数据。
一、存储函数1.创建函数内嵌函数
CREATE [OR REPLACE] FUNCTION function_name
[ (argment [ { IN | IN OUT }] T...
创建存储过程时
出错信息:
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)
原因:
这是我们开启了bin-log, 我们就必须指定我们的函数是否是
1 DETERMINISTIC 不确定的
2 NO SQL 没有SQl语句,当然也不会修改数据
3 READS SQL DATA 只是读取数据,当...
(1)概念:
① 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集。经编译后存储在数据库 中。
② 存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过 程带有参数)来执行它。
③ 存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中。
④ 存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量。
⑤ 同时...
select * from fruit
select * from Login
select * from OrderDetails
select * from Orders
select * from info
select * from Familygo
--存储过程,实现用户购买水果的操作,要判断购买数量和库存之间的关系,购买总价和余额之间的关系,如果购买成功修改4个表create procedure buyfruit --创建一个存储
--定义参数,参数之间用逗号隔开
@uid varchar(50),--用户名
@fcode varchar(50),--要买水果编号
@sl int --要买的...
视图 视图,其实就是虚拟的一张表,里边封装了sql的查询结果。 创建视图: create view 视图名 as select语句。 执行视图:show tables; 删除视图,drp view 视图名;本文出自 “屌丝逆袭” 博客,请务必保留此出处http://5731674.blog.51cto.com/5721674/1684908原文:http://5731674.blog.51cto.com/5721674/1684908