一分心灵的宁静

在滚滚红尘,繁杂人世里,能够保持一分心灵的宁静,随时回到自己的内心深处,细细品味生命的奥妙,无疑是一种修身养性的人生境界

导航

怎么在查询分析器里修改ntext属性值

Posted on 2006-08-14 13:05  有缘无份  阅读(1320)  评论(0)    收藏  举报
怎么在查询分析器里修改ntext属性值

Declare  @myupdate  ntext  
set  @myupdate=(select  content  from  content  where  thisid=3009)  
replace(@myupdate,'<p><br></p>','')  

服务器:  消息  2739,级别  16,状态  1,行  2  
对于局部变量,text、ntext  和  image  数据类型无效。  
---------------------------------------------------------------  

UPDATETEXT  
更新现有  text、ntext  或  image  字段。使用  UPDATETEXT  在适当的位置更改  text、ntext  或  image  列的一部分。使用  WRITETEXT  来更新和替换整个  text、ntext  或  image  字段。  

语法  
UPDATETEXT  {  table_name.dest_column_name  dest_text_ptr  }   
       {  NULL    &brvbar;  insert_offset  }  
       {  NULL    &brvbar;  delete_length  }  
       [  WITH  LOG  ]  
       [  inserted_data  
                 &brvbar;  {  table_name.src_column_name  src_text_ptr  }  ]  

参数  
table_name.dest_column_name  

要更新的表和  text、ntext  或  image  列的名称。表名和列名必须符合标识符的规则。有关更多信息,请参见使用标识符。指定数据库名和所有者名是可选的。  

dest_text_ptr  

指向要更新的  text、ntext  或  image  数据的文本指针的值(由  TEXTPTR  函数返回)。dest_text_ptr  必须为  binary(16)。  

insert_offset  

以零为基的更新起始位置。对于  text  或  image  列,insert_offset  是在插入新数据前从现有列的起点开始要跳过的字节数对于  ntext  列,insert_offset  是字符个数(每个  ntext  字符占用  2  个字节)。开始于这个以零为基的起始点的现有  text、ntext  或  image  数据向右移,为新数据腾出空间。值为  0  表示将新数据插入到现有位置的开始处。值为  NULL  则将新数据追加到现有数据值中。  

delete_length  

是从  insert_offset  位置开始的、要从现有  text、ntext  或  image  列中删除的数据长度。delete_length  值对于  text  和  image  列用字节指定,对于  ntext  列用字符指定。每个  ntext  字符占用  2  个字节。值为  0  表示不删除数据。值为  NULL  则删除现有  text  或  image  列中从  insert_offset  位置开始到末尾的所有数据。  

WITH  LOG  

在  Microsoft&reg;  SQL  Server™  2000  中被忽略。在该版本中,日志记录由数据库的有效恢复模型决定。  

inserted_data  

是要插入到现有  text、ntext  或  image  列  insert_offset  位置的数据。这是单个  char、nchar、varchar、nvarchar、binary、varbinary、text、ntext  或  image  值。inserted_data  可以是文字或变量。  

table_name.src_column_name  

用作插入数据源的表或  text、ntext  或  image  列的名称。表名和列名必须符合标识符的规则。  

src_text_ptr  

指向作为插入数据源使用的  text、ntext  或  image  列的文本指针值(由  TEXTPTR  函数返回)。  

注释  
新插入的数据可以是单个  inserted_data  常量、表名、列名或文本指针。  

Update  操作  UPDATETEXT  参数   
替换现有数据  指定一个非空  insert_offset  值、非零  delete_length  值和要插入的新数据。   
删除现有数据  指定一个非空  insert_offset  值、非零  delete_length  值。不指定要插入的新数据。   
插入新数据  指定  insert_offset  值、为零的  delete_length  值和要插入的新数据。   


在  SQL  Server  2000  中,可能存在指向  text、ntext  或  image  数据的行内文本指针,但这些指针无效。有关  text  in  row  选项的信息,请参见  sp_tableoption。有关使文本指针无效的信息,请参见  sp_invalidate_textptr。  

当兼容级别等于  65时,要将  text  列初始化为  NULL,请使用  UPDATETEXT。如果兼容级别等于  70,则使用  WRITETEXT  将  text  列初始化为  NULL;否则  UPDATETEXT  将  text  列初始化为空字符串。有关设置兼容级别的信息,请参见  sp_dbcmptlevel。   

权限  
UPDATETEXT  权限默认授予在指定表上具有  SELECT  权限的用户。这些权限可在传递  SELECT  权限时传递。  

示例  
本示例把文本指针置于局部变量  @ptrval  中,然后使用  UPDATETEXT  更新拼写错误。  

USE  pubs  
GO  
EXEC  sp_dboption  'pubs',  'select  into/bulkcopy',  'true'  
GO  
DECLARE  @ptrval  binary(16)  
SELECT  @ptrval  =  TEXTPTR(pr_info)   
     FROM  pub_info  pr,  publishers  p  
           WHERE  p.pub_id  =  pr.pub_id   
           AND  p.pub_name  =  'New  Moon  Books'  
UPDATETEXT  pub_info.pr_info  @ptrval  88  1  'b'   
GO  
EXEC  sp_dboption  'pubs',  'select  into/bulkcopy',  'false'  
GO