日期:2014-05-18  浏览次数:20407 次

如何在存儲過程中驗証數据
我希望把所有的驗証都寫在存儲過程中﹐在其中進行驗証﹐當出現錯誤是﹐用一個OUTPUT變量傳回錯誤信息(如下例中的@errorMsg)﹐但是我執行是﹐在第一個INSERT語句時就拋出异常﹐根本不執行其后的   IF(@@ERROR   !=0)這個判斷﹐是哪里出了錯﹖
/*  
用于完成對Part表(物料表)的新增操作﹐
如果表單价信息﹐則同時對Quotaion表(單价表)進行操作  
*/
CREATE   PROCEDURE   [Part_Add]  
@partID   varchar(18),                                                 --   物料編號
@partName   varchar(40),                                 --   物料品名
@partSpec   varchar(40),                                   --   物料規格
@colorID   varchar(5),                                             --   顏色ID
@unitID   varchar(5),                                                 --   計量單位ID
@rankID   char(1),                                                         --   環保級別ID  
@depotID   varchar(3),                                           --   存放倉庫ID
@partType1   varchar(3),                                     --   种類1ID
@partType2   varchar(3),                                     --   种類2ID
@partType3   varchar(3),                                     --   种類3ID
@createDate   smalldatetime,                         --   創建日期
@modifyDate     smalldatetime   =getdate,         --   修改日期
@supplierID   varchar(5),                                       --   供應商ID
@moneyID   char(3),                                                     --   計价幣別
@price   numeric(7,3),                                         --   單价
@getDate   smalldatetime   =   getdate,         --   核价日期
@errorMsg     varchar(200)     OUTPUT           --   用于返回錯誤信息  
AS
BEGIN   TRANSACTION
        INSERT   INTO   [Part]   (   [PartID],   [PartName],   [PartSpec],   [ColorID],   [UnitID],   [RankID],   [DepotID],   [PartType1],   [PartType2],   [PartType3],   [CreateDate],   [ModifyDate] &