sql之新增

来源:互联网 发布:淘宝店铺怎样开通花呗 编辑:程序博客网 时间:2024/06/08 06:35

 

USE [DLPtro]
GO
/****** Object:  StoredProcedure [dbo].[Pr_Area_Insert]    Script Date: 11/17/2013 20:29:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- 作者:  test

-- 建立时间: 2000年5月11日 10:50
-- 功能描述: 添加地区信息
-- =============================================
ALTER PROCEDURE [dbo].[Pr_Area_Insert]
--参数
@ErrorCode  Varchar(1) Output ,
@Area_ID  int Output,
@Area_Name  varchar(30),
@Area_Parent_ID int,
@Area_Encoding  varchar(30),
@Area_AreaLevel_ID int,
@Area_Remark varchar(500),
@Area_State  int

AS
--判断将要插入的数据是否一次存在数据库中
IF NOT EXISTS (SELECT * FROM B_Area WHERE Area_Name = @Area_Name and Area_State = 1)
BEGIN
 --在数据库中不存在,插入数据,启动事务
 BEGIN TRANSACTION
  --启动错误处理机制
  BEGIN TRY
   --插入数据
   INSERT INTO B_Area
   (
    Area_Name
    ,Area_ParentID
    ,Area_Encoding
    ,Area_AreaLevel_ID
    ,Area_Remark
    ,Area_State
   )
   VALUES
   (
    @Area_Name
    ,@Area_Parent_ID
    ,@Area_Encoding
    ,@Area_AreaLevel_ID
    ,@Area_Remark
    ,@Area_State
   )
  END TRY
  BEGIN CATCH
   --插入时系统出错,事务回滚
   ROLLBACK TRANSACTION
   SELECT @ErrorCode = 'R'
   RETURN 0;
  END CATCH
 --插入数据成功,提交事务
 COMMIT TRANSACTION
 --返回当前插入的ID
 SELECT @Area_ID = SCOPE_IDENTITY()
 SELECT @ErrorCode = 'S'
 RETURN 1;
END
ELSE
BEGIN
 --在数据库中存在,重复数据
 SELECT @ErrorCode = 'E'
END