以下SQL是怎么操作的。

hanhsh 2005-10-11 11:12:50
writetext bulk OPERATOR.PRIVILEGE 0xfdfff57c000000009800000001000200 timestamp = 0x64756d6d79545300 with log
上边的OPERATOR.PRIVILEGE 为一员工表中的权限字段,为image类型的。是存的一些十六进制数据。
writetext 是对此字段操作的,我不明白的地方是bulk和timestamp = 0x64756d6d79545300 with log
部分,还有是不是它通过象log中写东西writetext 才起做用。比如写的是0x09000000000000002D010000000000002E010000000000002F01000000000000.谁这样操作过十六进制的数据?有例子更好(最好是delphi的).
...全文
179 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanhsh 2005-10-29
  • 打赏
  • 举报
回复
SQL老大们,怎么都不进来。
hanhsh 2005-10-25
  • 打赏
  • 举报
回复
自己顶。
gdcrx 2005-10-18
  • 打赏
  • 举报
回复
不懂,up
iwl 2005-10-18
  • 打赏
  • 举报
回复
帮你 up
hanhsh 2005-10-18
  • 打赏
  • 举报
回复
自己顶。
hanhsh 2005-10-11
  • 打赏
  • 举报
回复
咱知道 WRITETEXT 的语法,
WRITETEXT { table.column text_ptr }
[ WITH LOG ] { data }
主要是上边这条SQL语句没有要修改的 { data }, 还有 bulk,timestamp = 0x64756d6d79545300 又怎么解释。它是通过什么东西而改变了OPERATOR.PRIVILEGE 中的值的。

子陌红尘 2005-10-11
  • 打赏
  • 举报
回复
WITH LOG --记录日志,在 Microsoft SQL Server 2000 中忽略。日志记录由数据库的实际恢复模型决定。

以操作TEXT列的标准函数 UPDATETEXT 实现对TEXT列数据的追加:
-------------------------------------------------------------------------------

--创建临时表,并将表头信息插入表中
CREATE TABLE #tab_dest(c1 TEXT)
INSERT INTO #tab_dest SELECT 'uid name'

--声明过程变量
DECLARE @uid VARCHAR(20),@name VARCHAR(40),@s VARCHAR(100),@len INT

--以游标方式获取sysusers中数据,并以UPDATETEXT方式更新到临时表#tab_dest
DECLARE t_cursor CURSOR FOR
SELECT uid,name FROM sysusers

OPEN t_cursor

FETCH NEXT FROM t_cursor INTO @uid,@name

WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @len = DATALENGTH([c1]) FROM #tab_dest

SET @s = CHAR(13)+@uid+' '+@name

DECLARE @ptrval binary(16)

SELECT
@ptrval = TEXTPTR(c1)
FROM
#tab_dest

UPDATETEXT #tab_dest.[c1] @ptrval @len 0 @s

FETCH NEXT FROM t_cursor INTO @uid,@name
END

CLOSE t_cursor
DEALLOCATE t_cursor

--查看更新结果
SELECT C1 FROM #tab_dest

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧