批量替换数据表里的数据

SET NOCOUNT ON

DECLARE @TName varchar(100) --TableName

DECLARE @FieldName varchar(100) --ReplaceFieldName

DECLARE @OldKeyVale varchar(max)

DECLARE @ReplaceKeyValue varchar(max)

SET @TName ='tbl_ddl_log'

SET @FieldName = 'TSQL'

SET @OldKeyVale = 'TesttableReplace'

SET @ReplaceKeyValue ='Testtable'

DECLARE @SQL varchar(max)

SET @SQL = ' DECLARE @KeyFrontValue nvarchar(max) DECLARE @KeyBehindValue nvarchar(max)

DECLARE @T TABLE(RowNum int,OldKeyValue nvarchar(max)) INSERT INTO @T SELECT Row_Number()over(ORDER BY [#FieldName#]),[#FieldName#] FROM #TNameTemp# IF(EXISTS(SELECT * FROM #TNameTemp#)) BEGIN DECLARE @MaxRowNumber int,@DoNum int,@MinRowNumber int DECLARE @NewKeyValueAll nvarchar(max) DECLARE @OldKeyValueAll nvarchar(max) SELECT @MaxRowNumber=MAX(RowNum) FROM @T SELECT @MinRowNumber=MIN(RowNum) FROM @T SET @DoNum =0 WHILE(@MinRowNumber<= @MaxRowNumber) BEGIN DECLARE @iCount_KeyID int SELECT @iCount_KeyID = CHARINDEX(''#OldKeyTemp#'',OldKeyValue) FROM @T WHERE RowNum = @MinRowNumber IF(@iCount_KeyID > 0) BEGIN SELECT @NewKeyValueAll =REPLACE(OldKeyValue,''#OldKeyTemp#'',''#ReplaceKeyTemp#''),@OldKeyValueAll = OldKeyValue FROM @T WHERE RowNum = @MinRowNumber UPDATE #TNameTemp# SET [#FieldName#]= @NewKeyValueAll WHERE [#FieldName#] = @OldKeyValueAll SET @DoNum = 1 IF(@@ERROR<>0) PRINT ''Replace Fail'' ELSE PRINT ''Replace Successful'' END SET @MinRowNumber = @MinRowNumber + 1 END IF(@DoNum =0) print ''no accord row in the table'' END else print ''no row in the table'''

SET @SQL = Replace(@SQL,'#TNameTemp#',@TName)

SET @SQL = Replace(@SQL,'#FieldName#',@FieldName)

SET @SQL = Replace(@SQL,'#OldKeyTemp#',@OldKeyVale)

SET @SQL = Replace(@SQL,'#ReplaceKeyTemp#',@ReplaceKeyValue)

PRINT @SQL

SET NOCOUNT OFF

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7192349/viewspace-1001874/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7192349/viewspace-1001874/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值