数据库系统开发实验_第1页
数据库系统开发实验_第2页
数据库系统开发实验_第3页
已阅读5页,还剩5页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统开发触发器设计与班级(..e修改信息记录表Production.ProductUpdaog的内容:记录编号、订单编号、订单明细编号、产品编设计触发器测试方案并给出测试令和结果,必要时可对进行分析useuse[AdventureWorks]ifOBJECT_ID('[Production].[UpdateProductLog]','U'isnotnull--如果已经存在则删除droptable[Production].[UpdateProductLog]createtable[Production].[UpdateProductLog按要求设计的表UpdateProductIDintprimarykey,SalesOrderIDintnotnull,SalesOrderDetailIDintnotnull,ProductIDintnotnull,ProductListPricemoneynotnull,ProductHistoryUnitPricemoneynotnull,ProductNowUnitPricemoneynotnull,LoginNamechar(20)notnull)2过use[AdventureWorks]ifobject_idProduction].[recUpdateProductLog]','Pisnotnull--如果存在则删除dropprocedure[Production].[recUpdateProductLog]createprocedure[Production].[recUpdateProductLog]@SalesOrderIDint,@SalesOrderDetailIDint,@ProductIDint,@ProductListPricemoney报价,--@ProductNowUnitPricemoney当前单价withexecuteascallersetnocountonbegintrybegindeclare@maxidint;表示表中最大的ifnotexistsselect1from[Production].[UpdateProductLog查看是否为空表set@maxid=select@maxid=max(UpdateProductID)fromdeclare@hostnamechar(20);--当前修改表的用户的登录名select@hostnamehostnamefrommaster.sys.sysprocessesinsertinto[Production].[UpdateProductLog]values(@maxid+1,)commitendtrybeginendtrybegincatchraiserror(N'in[Production].[recUpdateProductLog]error',11,1);if@@TRANCOUNT>0rollback3ifobject_id('Sales.SalesOrderTrigger','TR')isnotnull droptriggerSales.SalesOrderTriggercreatetriggerSales.SalesOrderTriggeronSales.SalesOrderDetailafterupdateasdeclare@priceselect@price=UnitPricefrominserted;declare@ProductIDint;select@ProductID=ProductIDfrominserted;declare@listpricemoney;select@listprice=ListPricefromProduction.ProductwhereProductID=@ProductID;if@price@listprice判断是否当前价格大于报价raiserror(N'unitpricecannotbehigherthanlistprice!',11,1);if@@TRANCOUNT>0rollbackdeclare@SalesOrderID1select@SalesOrderID1=SalesOrderIDfrominserted;declare@SalesOrderDetailsIDint;select@SalesOrderDetailsID=SalesOrderDetailIDfromdeclare@ProductHistoryUnitPriceselect@ProductHistoryUnitPrice=UnitPricefromdeleted;declare@ProductNowUnitPricemoney;select@ProductNowUnitPrice=UnitPricefrominserted;declare@statusint;exec@status=Production.recUpdateProductLog@SalesOrderID=@SalesOrderID1,@SalesOrderDetailID=@SalesOrderDetailsID,@ProductID=@ProductID,@ProductListPrice=@listprice,@ProductHistoryUnitPrice=@ProductHistoryUnitPrice,@ProductNowUnitPrice=@ProductNowUnitPrice1000Sales.SalesOrderDetailProductID777ID7775000(超过了报价)查询分析:新修改的产品单价大于了报价,所以执行了raiserror(N'un

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论