UPDATETEXT (Transact-SQL)UPDATETEXT (Transact-SQL)

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Atualiza um campo text, ntext ou image existente.Updates an existing text, ntext, or image field. Use UPDATETEXT para alterar apenas uma parte de uma coluna text, ntext ou image em vigor.Use UPDATETEXT to change only a part of a text, ntext, or image column in place. Use WRITETEXT para atualizar e substituir todo um campo text, ntext ou image.Use WRITETEXT to update and replace a whole text, ntext, or image field.

Importante

Este recurso está em modo de manutenção e talvez seja removido em uma versão futura do Microsoft SQL Server.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use os tipos de dados de valor grande e a cláusula . WRITE da instrução UPDATE nesse caso.Use the large-value data types and the . WRITE clause of the UPDATE statement instead.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

  
UPDATETEXT [BULK] { table_name.dest_column_name dest_text_ptr }  
  { NULL | insert_offset }  
     { NULL | delete_length }  
     [ WITH LOG ]  
     [ inserted_data  
    | { table_name.src_column_name src_text_ptr } ]  

ArgumentosArguments

BULKBULK
Permite carregar ferramentas para carregar um fluxo de dados binários.Enables upload tools to upload a binary data stream. O fluxo deve ser fornecido pela ferramenta no nível do protocolo TDS.The stream must be provided by the tool at the TDS protocol level. Quando o fluxo de dados não está presente, o processador de consulta ignora a opção de BULK.When the data stream is not present the query processor ignores the BULK option.

Importante

Nós recomendamos que a opção de BULK não seja usada em aplicativos baseados no SQL ServerSQL Server.We recommend that the BULK option not be used in SQL ServerSQL Server-based applications. Essa opção deve ser alterada ou removida em uma futura versão do SQL ServerSQL Server.This option might be changed or removed in a future version of SQL ServerSQL Server.

table_name .table_name . dest_column_namedest_column_name
É o nome da tabela e da coluna text, ntext ou image a ser atualizado.Is the name of the table and text, ntext, or image column to be updated. Os nomes de tabela e de coluna devem obedecer às regras de identificadores.Table names and column names must comply with the rules for identifiers. A especificação do nome do banco de dados e de nomes de proprietários é opcional.Specifying the database name and owner names is optional.

dest_text_ptrdest_text_ptr
É um valor de ponteiro de texto (retornado pela função TEXTPTR) que aponta para os dados text, ntext ou image a serem atualizados.Is a text pointer value (returned by the TEXTPTR function) that points to the text, ntext, or image data to be updated. dest_text_ptr deve ser binary( 16 ) .dest_text_ptr must be binary( 16 ).

insert_offsetinsert_offset
É a posição inicial baseada em zero para a atualização.Is the zero-based starting position for the update. Para colunas text ou image, insert_offset é o número de bytes a ser ignorado do início da coluna existente antes de inserir novos dados.For text or image columns, insert_offset is the number of bytes to skip from the start of the existing column before inserting new data. Para colunas ntext, insert_offset é o número de caracteres (cada caractere ntext usa 2 bytes).For ntext columns, insert_offsetis the number of characters (each ntext character uses 2 bytes). Os dados text, ntext ou image existentes que começam nessa posição inicial baseada em zero são deslocados para a direita, dando lugar aos novos dados.The existing text, ntext, or image data starting at this zero-based starting position is shifted to the right to make room for the new data. Um valor de 0 insere os novos dados no início dos dados existentes.A value of 0 inserts the new data at the beginning of the existing data. Um valor NULL acrescenta os novos dados ao valor dos dados existentes.A value of NULL appends the new data to the existing data value.

delete_lengthdelete_length
É o tamanho dos dados a serem excluídos da coluna text, ntext ou image existente, começando na posição insert_offset.Is the length of data to delete from the existing text, ntext, or image column, starting at the insert_offset position. O valor de delete_length é especificado em bytes para colunas text e image e em caracteres para colunas ntext.The delete_lengthvalue is specified in bytes for text and image columns and in characters for ntext columns. Cada caractere ntext usa 2 bytes.Each ntext character uses 2 bytes. Um valor de 0 não exclui nenhum dado.A value of 0 deletes no data. Um valor NULL exclui todos os dados da posição insert_offset até o final da coluna text ou image existente.A value of NULL deletes all data from the insert_offset position to the end of the existing text or image column.

WITH LOGWITH LOG
A criação de log é determinada pelo modelo de recuperação em vigor para o banco de dados.Logging is determined by the recovery model in effect for the database.

inserted_datainserted_data
São os dados a serem inseridos na coluna text, ntext ou image existente no local insert_offset.Is the data to be inserted into the existing text, ntext, or image column at the insert_offset location. Esse é um único valor char, nchar, varchar, nvarchar, binary, varbinary, text, ntext ou image.This is a single char, nchar, varchar, nvarchar, binary, varbinary, text, ntext, or image value. inserted_data pode ser um literal ou uma variável.inserted_data can be a literal or a variable.

table_name.src_column_nametable_name.src_column_name
É o nome da tabela e da coluna text, ntext ou image usada como a origem dos dados inseridos.Is the name of the table and text, ntext, or image column used as the source of the inserted data. Os nomes de tabela e de coluna devem estar em conformidade com as regras para identificadores.Table names and column names must comply with the rules for identifiers.

src_text_ptrsrc_text_ptr
É um valor de ponteiro de texto (retornado pela função TEXTPTR) que aponta para uma coluna text, ntext ou image usada como a origem dos dados inseridos.Is a text pointer value (returned by the TEXTPTR function) that points to a text, ntext, or image column used as the source of the inserted data.

Observação

O valor de scr_text_ptr não deve ser o mesmo que o valor dest_text_ptr.scr_text_ptr value must not be the same as dest_text_ptrvalue.

RemarksRemarks

Os dados recém-inseridos podem ser uma única constante inserted_data, um nome de tabela, um nome de coluna ou um ponteiro de texto.Newly inserted data can be a single inserted_data constant, table name, column name, or text pointer.

Ação de atualizarUpdate action Parâmetros UPDATETEXTUPDATETEXT parameters
Para substituir dados existentesTo replace existing data Especifique um valor de insert_offset não nulo, um valor de delete_length diferente de zero e os novos dados a serem inseridos.Specify a nonnull insert_offset value, a nonzero delete_length value, and the new data to be inserted.
Para excluir dados existentesTo delete existing data Especifique um valor não nulo de insert_offset e um delete_length diferente de zero.Specify a nonnull insert_offset value and a nonzero delete_length. Não especifique novos dados a serem inseridos.Do not specify new data to be inserted.
Para inserir novos dadosTo insert new data Especifique o valor de insert_offset, um delete_length igual a 0 e os novos dados a serem inseridos.Specify the insert_offset value, a delete_length of 0, and the new data to be inserted.

Para obter um melhor desempenho, recomendamos que os dados text, ntext e image sejam inseridos ou atualizados em tamanhos de partes que sejam múltiplos de 8.040 bytes.For best performance we recommend that text, ntext and image data be inserted or updated in chunks sizes that are multiples of 8,040 bytes.

No SQL ServerSQL Server, os ponteiros de texto em linha para os dados text, ntext ou image podem existir, mas podem não ser válidos.In SQL ServerSQL Server, in-row text pointers to text, ntext, or image data may exist but may not be valid. Para obter informações sobre a opção text in row, consulte sp_tableoption (Transact-SQL).For information about the text in row option, see sp_tableoption (Transact-SQL). Para obter informações sobre como invalidar ponteiros de texto, consulte sp_invalidate_textptr (Transact-SQL).For information about invalidating text pointers, see sp_invalidate_textptr (Transact-SQL).

Para inicializar colunas text com NULL, use WRITETEXT; UPDATETEXT inicializa colunas text com uma cadeia de caracteres vazia.To initialize text columns to NULL, use WRITETEXT; UPDATETEXT initializes text columns to an empty string.

PermissõesPermissions

Requer a permissão UPDATE na tabela especificada.Requires UPDATE permission on the specified table.

ExemplosExamples

O exemplo a seguir coloca o ponteiro de texto na variável local @ptrval e, depois, usa UPDATETEXT para atualizar um erro ortográfico.The following example puts the text pointer into the local variable @ptrval, and then uses UPDATETEXT to update a spelling error.

Observação

Para executar este exemplo, é necessário instalar o banco de dados pubs.To run this example, you must install the pubs database.

USE pubs;  
GO  
ALTER DATABASE pubs SET RECOVERY SIMPLE;  
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  
ALTER DATABASE pubs SET RECOVERY FULL;  
GO  

Consulte TambémSee Also

READTEXT (Transact-SQL) READTEXT (Transact-SQL)
TEXTPTR (Transact-SQL) TEXTPTR (Transact-SQL)
WRITETEXT (Transact-SQL)WRITETEXT (Transact-SQL)