更新日志存儲過程

--更新日志存儲過程
--作者:yoncen 2005/12/31
CREATE PROCEDURE up_UpdateLog
(
@databasename sysname, --數據庫名
@tablename sysname, --表名
@fieldname sysname, --字段名
@updatetext nvarchar(1000) --更新內容
)
AS
SET NOCOUNT ON
declare @sqlcmd nvarchar(2000)
select @sqlcmd = ''
select @sqlcmd = @sqlcmd+'--檢查select into/bulkcopy狀態'
select @sqlcmd = @sqlcmd+'CREATE TABLE #dboption(name VARCHAR(200))'+char(10)
select @sqlcmd = @sqlcmd+'INSERT INTO #dboption'+char(10)
select @sqlcmd = @sqlcmd+'EXECUTE sp_dboption '''+@databasename+''''+char(10)
select @sqlcmd = @sqlcmd+'IF EXISTS(SELECT name FROM #dboption '+char(10)
select @sqlcmd = @sqlcmd+'    WHERE name=''select into/bulkcopy'''+char(10)
select @sqlcmd = @sqlcmd+'EXECUTE sp_dboption '''+@databasename+''''
select @sqlcmd = @sqlcmd+', ''select into/bulkcopy'', ''true'''+char(10)
select @sqlcmd = @sqlcmd+'--更新日志'+char(10)
select @sqlcmd = @sqlcmd+'DECLARE @ptrval binary(16)'+char(10)
select @sqlcmd = @sqlcmd+'SELECT @ptrval = TEXTPTR('+@fieldname+')'+char(10)
select @sqlcmd = @sqlcmd+'FROM '+@tablename+char(10)
select @sqlcmd = @sqlcmd+'UPDATETEXT '+@tablename+'.'+@fieldname+' '
select @sqlcmd = @sqlcmd+'@ptrval 0 0 '''+@updatetext+''''+char(10)
select @sqlcmd = @sqlcmd+'--清除臨時數據'+char(10)
select @sqlcmd = @sqlcmd+'TRUNCATE TABLE #dboption'+char(10)
select @sqlcmd = @sqlcmd+'DROP TABLE #dboption'
EXECUTE(@sqlcmd)
SET NOCOUNT OFF

--說明:這是一個通用的text數據類型日志更新存儲過程.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值