通过存储过程进行字符串分拆,在同时删除多条记录的时候有用。
来源:互联网 发布:350模板和淘宝什么区别 编辑:程序博客网 时间:2024/04/30 10:57
1.存储过程
ALTER PROCEDURE dbo.GetFirstWord
@SourceString NVARCHAR(4000) = NULL OUTPUT,
@FirstWord NVARCHAR(4000) = NULL OUTPUT
AS
SET NOCOUNT ON
DECLARE @Oldword NVARCHAR(4000)
DECLARE @Length INT
DECLARE @CommaLocation INT
SELECT @Oldword = @SourceString
IF NOT @Oldword IS NULL
BEGIN
--get the first seperate chara location
SELECT @CommaLocation = CHARINDEX(',',@Oldword)
--get the length
SELECT @Length = DATALENGTH(@Oldword)
--Do Not Find Seperate,There is last Word
IF @CommaLocation = 0
BEGIN
SELECT @FirstWord = @Oldword
SELECT @SourceString = null
RETURN @Length
END
-- get the first word
SELECT @FirstWord = SUBSTRING(@Oldword,1,@CommaLocation-1)
--trim the first word and separate
SELECT @SourceString=SUBSTRING(@Oldword,@CommaLocation+1,@Length-@CommaLocation)
RETURN @Length - @CommaLocation
END
ELSE
SELECT @FirstWord = null
SELECT @Length = 0
RETURN 0
------------------------------------------------
ALTER PROCEDURE dbo.DeleteUserdataByIdlist
@idlist nvarchar(1000)
AS
SET NOCOUNT ON
DECLARE @FirstWORD NVARCHAR(1000)
DECLARE @FIRSTID int
DECLARE @LENGTH int
SET @LENGTH = DATALENGTH(@idlist)
while @LENGTH > 0
BEGIN
EXEC @LENGTH = GetFirstWord @idlist OUTPUT ,@FirstWORD OUTPUT
if @LENGTH > 0
BEGIN
SELECT @FIRSTID = CONVERT(INT,@FirstWORD)
EXEC DeleteUserdatabyID @userid = @FIRSTID
END
END
RETURN 0
---------------------------------------------------------------------------------------------------------
2. 测试过程
在查询分析器中输入测试代码:
1. declare @tmp1 nvarchar(4000),@tmp2 nvarchar(4000),@rtn int
set @tmp1 = 'a,b,cde'
SELECT @rtn = DATALENGTH(@tmp1)
while @rtn > 0
begin
exec @rtn = GetFirstWord @SourceString = @tmp1 output, @firstWord = @tmp2 output
print(@tmp2)
end
2.
exec DeleteUserdataByIdlist @idlist = '2,3,4,5,6' --同时删除多条记录
3. 输出结果
1.
a
b
cde
2.
删除了数据库中的记录
- 通过存储过程进行字符串分拆,在同时删除多条记录的时候有用。
- SQL存储过程通过传送数组字符串参数删除多条记录
- 简单的存储过程分页,删除多条记录的存储过程,存储过程中调用存储过程
- 通过数据库事务删除记录的存储过程
- ASP.NET 同时删除多条记录
- 把多条记录转为一个字符串输出存储过程
- 把多条记录转为一个字符串输出存储过程
- 把多条记录转为一个字符串输出存储过程
- struts2通过checkbox 删除多条记录
- sql 查询何时何人删除何条记录的存储过程
- asp 如何同时提交多条记录进行保存?
- Oracle 通过存储过程删除两个表中符合条件的记录
- 批量删除记录的存储过程
- 在sql的存储过程里,如何用一个Delete语句同时删除两个表中的数据
- 支持千万条记录分页访问的存储过程
- WinForm中DataGridView控件通过复选框实现多条记录的删除 c#2005
- js实现对选中的多条记录进行删除操作
- js实现对选中的多条记录进行删除操作
- Ubuntu 下搭建Eclipse PDT实现php的单步调试的功能
- 初学T-SQL笔记之ON[PRIMARY]
- 网上购物系统.......jsp+++++javabean (一)
- 与
- 桂林老兵的SQLSERVER高级注入技巧
- 通过存储过程进行字符串分拆,在同时删除多条记录的时候有用。
- Shipping Routes
- 一问一答:存储过程经典问题
- Pointbase学习
- 过程中一些命名规范
- 2000之七种兵器
- 访问程序包DBMS_APPLICATION_INFO时出错
- 本人用foxpro写的房屋产权产籍管理系统(未完)
- 在IE耗时操作中加入进度条或进度框