SQL点滴28—一个简单的存储过程
2012-09-17 23:35
513 查看
在表中写入一条数据同事要向另外一个表中写入信息,所以会使用到事务。实际使用的时候还会一次向一个表中吸入多条数据,下面的存储过程,将字符串拆分成数组然后写入到表中。
/****** Object: StoredProcedure [dbo].[sp_InsertEmployee] Script Date: 09/17/2012 23:28:42 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: 插入一条雇员数据 -- ============================================= CREATE PROCEDURE [dbo].[sp_InsertEmployee] -- Add the parameters for the stored procedure here @Name varchar(50), @UserName varchar(50), @Password varchar(50), @Hierarchy char(1), @EmployeeTypeID int, @Sex varchar(5), @Telphone varchar(20), @CellPhone varchar(20), @QQ varchar(20), @Email varchar(50), @Statue varchar(20), @Remark varchar(50), @ManagerID int, @Regions varchar(1000) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; declare @ID int declare @tempSql varchar(2000) -- Insert statements for procedure here if exists(select * from Employee where Name=@Name) return 0 begin transaction insert into [Employee]( [Name],[UserName],[Password],[Hierarchy],[EmployeeTypeID],[Sex],[Telphone],[CellPhone],[QQ],[Email],[Statue],[Remark],[ManagerID] )values( @Name,@UserName,@Password,@Hierarchy,@EmployeeTypeID,@Sex,@Telphone,@CellPhone,@QQ,@Email,@Statue,@Remark,@ManagerID ) set @ID = @@IDENTITY if exists(select * from Permission where ID=@ID) begin delete from Permission where EmployeeID=@ID end else begin set @tempSql='insert into Permission select '+str(@ID)+', '''+replace(@Regions,',','''union select '+str(@ID)+',''')+'''' exec(@tempSql) end if @@ERROR>0 begin rollback transaction end else begin commit transaction end END GO
相关文章推荐
- SQL点滴28—一个简单的存储过程
- 一个简单的存储过程(实现事务执行两个sql语句,修改可实现执行更多条sql语句)
- SQL点滴3—一个简单的字符串分割函数
- SQL点滴3—一个简单的字符串分割函数
- 写一个sql中视图和存储过程的简单创建和调用方法!!!自我备忘用····
- 写一个sql中视图和存储过程的简单创建和调用方法!!!自我备忘用····
- sql-365 简单的存储过程
- 利用SQL语句创建、修改、执行、删除存储过程(简单应用)
- 用SQL语句获得一个存储过程返回的表
- AutoTRACE是分析SQL的执行计划,执行效率的一个非常简单方便的工具
- oracle的一个简单的存储过程
- SQL 数据库 学习 007 通过一个示例简单介绍什么是字段、属性、列、元组、记录、表、主键、外键 (上)
- SQL一个存储过程调用另一个存储过程 获得返回值
- oracle中函数和存储过程简单示例-动态sql
- 一个简单的SQL题
- sql 存储过程 几个 简单例子,及在asp.net(C#)中调用存储过程的代码
- SQL中获取一个长字符串中某个字符串出现次数的简单方法
- SQL中获取一个长字符串中某个字符串出现次数的简单方法(函数)
- 一个简单的演示SQL2005的查询通知的例子
- 简单有用的SQL脚本 (行列互转,查询一个表内相同纪录等)