数据库中的存储过程和触发器意味着什么? 我如何创建存储过程? 我该如何顶峰触发器? 如果你有每个这些简单的例子。请帮助:) 我知道的只是关于触发器,如果(插入或删除或更新)的动作违反指定的限制,但我不知道如何创建,所以再次如果有任何例子请数据库中的存储过程和触发器
0
A
回答
3
想一想存储过程作为您的代码中的方法。它运行一组特定的指令。
存储过程是为了管理复杂的数据集而创建的,这些数据在您的代码中通常会很难处理。
你可以创建一个存储过程以下指示:
甲骨文
CREATE OR REPLACE PROCEDURE P_PROCEDURE_NAME (
pParameter1 NUMBER
, pParameter2 VARCHAR2(100 Bytes)
) AS
BEGIN
-- Procedure code here...
END;
SQL服务器
CREATE PROCEDURE cspProcedureName
@parameter1 int
, @parameter2 nvarchar(100)
AS
-- Procedure code here...
甲骨文
至于触发器,它们是调用相关表的动作时调用的代码集合。例如,在Oracle中,不存在如SQL Server提供的INDENTITY
列。相反,序列与一起使用触发器来模拟相同。因此,您需要创建一个Oracle SEQUENCE,然后使用TRIGGER来更新您的表的ID字段。
CREATE SEQUENCE SEQ_CUSTOMERS
MINVALUE 1
MAXVALUE 65535
START WITH 1
INCREMENT BY 1;
CREATE OR REPLACE TRIGGER TRG_CUSTOMERS_INSERT
BEFORE INSERT
ON TBL_CUSTOMERS
FOR EACH ROW
BEGIN
:NEW.CUST_ID := SEQ_CUSTOMERS.NEXTVAL;
END;
SQL服务器
在SQL Server中的触发器例如将自动更新记录的更新日期时间。考虑以下几点:
CREATE TABLE Customers (
CustId int NOT NULL IDENTITY(1, 1) PRIMARY KEY
, CustName nvarchar(100) NOT NULL
, CreatedOn datetime DEFAULT GETDATE()
, LastUpdate datetime NOT NULL
)
GO
CREATE TRIGGER trgCustomersUpdt
AFTER UPDATE
ON Customers
AS
update Customers
set LastUpdate = GETDATE()
where CustId = inserted.Custid
GO
免责声明
此代码尚未经过测试,并且可能需要小的改动让它针对其各自的RDBMS正常工作。
概括起来,触发器主要用于如图所示这里,尽管还有许多其他可能的用途,如建立的所发生throught时间表变动的历史,保持交易的所有记录成历史桌子等。存储过程主要用于执行复杂的数据库任务,在代码中这会变得太复杂。
相关问题
- 1. 关于数据库触发器和存储过程
- 2. mysql存储过程和触发器
- 3. mysql触发器和存储过程diff
- 4. Oracle触发器和存储过程
- 5. 触发器/用于数据完整性的存储过程器
- 6. Web应用程序中的触发器和存储过程
- 7. 如何防止从触发器或存储过程保存到数据库?
- 8. 在另一个数据库上调用存储过程的运行触发器
- 9. 触发器调用存储过程
- 10. SQL Server触发器,存储过程
- 11. 在mysql中的存储过程和触发器
- 12. MySQL中的触发器和存储过程
- 13. SQL Server中的触发器和存储过程安全性
- 14. PostgreSQL中的存储过程和触发器
- 15. 数据库存储过程
- 16. H2数据库中的存储过程
- 17. 在存储过程和触发器之间共享数据的最佳方式
- 18. 触发器和存储过程如何在ER图中表示?
- 19. 通过表触发器捕获存储过程参数
- 20. 秩序Oracle触发器和语句的执行存储过程
- 21. 在oracle存储过程中触发
- 22. 何处存储存储过程/触发器/ java类?
- 23. 查找未被CRUD存储过程触及的数据库列
- 24. 数据库交互的通用存储库或存储过程?
- 25. Silverlight的数据存储过程和存储过程
- 26. 从脚本中跟踪存储过程存储的数据库
- 27. 数据库触发器不保存
- 28. 基于触发器和存储过程更新汇总表
- 29. MySQL触发器和存储过程复制
- 30. PostgreSQL触发器和存储过程不在踢
这不是Google的工作。当您搜索时,结合特定数据库(例如Oracle)进行搜索,因为语法会有所不同。 – orangepips 2010-12-17 19:57:14
你的知识水平有人没有创造触发器的业务。触发器只能由数据库专家的开发人员创建,因为如果写得不好,它们可能会造成很大的伤害。 – HLGEM 2010-12-17 20:55:26
@HLGEM:我真的不相信OP会收到更好的评论。相反,我认为OP希望知道SP和TRG是什么,所以他不会随时了解或学习如何正确使用它们。 – 2010-12-18 04:30:15