WRITETEXT (Transact-SQL)WRITETEXT (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

Permite a atualização interativa minimamente registrada de uma coluna de text, ntext ou image existente.Permits minimally logged, interactive updating of an existing text, ntext, or image column. WRITETEXT substitui quaisquer dados existentes na coluna afetada.WRITETEXT overwrites any existing data in the column it affects. WRITETEXT não pode ser usado em colunas de text, ntext e image em exibições.WRITETEXT cannot be used on text, ntext, and image columns in views.

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

  
WRITETEXT [BULK]  
  { table.column text_ptr }  
  [ WITH LOG ] { data }  

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 .columntable .column
É o nome da tabela e da coluna de text, ntext ou image a ser atualizado.Is the name of the table and text, ntext, or image column to update. Os nomes de tabela e de coluna precisam estar de acordo com as regras para identificadores.Table 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.

text_ptrtext_ptr
É um valor que armazena o ponteiro para os dados de text, ntext ou image.Is a value that stores the pointer to the text, ntext, or image data. text_ptr precisa ser binary(16) . Para criar um ponteiro de texto, execute uma instrução INSERT ou UPDATE com os dados não nulos para a coluna text, ntext ou image.text_ptr must be binary(16).To create a text pointer, execute an INSERT or UPDATE statement with data that is not null for the text, ntext, or image column.

WITH LOGWITH LOG
Ignorado pelo SQL ServerSQL Server.Ignored by SQL ServerSQL Server. 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.

datadata
São os dados reais de text, ntext ou image a serem armazenados.Is the actual text, ntext or image data to store. data pode ser um literal ou um parâmetro.data can be a literal or a parameter. O comprimento máximo do texto que pode ser inserido de forma interativa com WRITETEXT é de aproximadamente 120 KB para dados de text, ntext e image.The maximum length of text that can be inserted interactively with WRITETEXT is approximately 120 KB for text, ntext, and image data.

RemarksRemarks

Use WRITETEXT para substituir dados de text, ntext e image e UPDATETEXT para modificar dados de text, ntext e image.Use WRITETEXT to replace text, ntext, and image data and UPDATETEXT to modify text, ntext, and image data. UPDATETEXT é mais flexível porque altera somente uma parte de uma coluna de text, ntext ou image e não a coluna inteira.UPDATETEXT is more flexible because it changes only a part of a text, ntext, or image column instead of the whole column.

Para obter o melhor desempenho possível, recomenda-se que os dados de text, ntext e image sejam inseridos ou atualizados em partes com tamanhos que sejam múltiplos de 8040 bytes.For best performance we recommend that text, ntext, and image data be inserted or updated in chunk sizes that are multiples of 8040 bytes.

Se o modelo de recuperação do banco de dados for simples ou bulk-logged, as operações de text, ntext e image que usam WRITETEXT serão registradas minimamente quando novos dados forem inseridos ou anexados.If the database recovery model is simple or bulk-logged, text, ntext, and image operations that use WRITETEXT are minimally logged operations when new data is inserted or appended.

Observação

A criação mínima de log não é usada quando valores existentes são atualizados.Minimal logging is not used when existing values are updated.

Para que WRITETEXT funcione corretamente, a coluna já deve conter um ponteiro de texto válido.For WRITETEXT to work correctly, the column must already contain a valid text pointer.

Se a tabela não tiver texto em linha, o SQL ServerSQL Server economizará espaço com a não inicialização de colunas de text quando valores nulos explícitos ou implícitos forem adicionados em colunas de text com INSERT e quando nenhum ponteiro de texto puder ser obtido para esses nulos.If the table does not have in row text, SQL ServerSQL Server saves space by not initializing text columns when explicit or implicit null values are added in text columns with INSERT, and no text pointer can be obtained for such nulls. Para inicializar colunas de text como NULL, use a instrução UPDATE.To initialize text columns to NULL, use the UPDATE statement. Se a tabela tiver texto em linha, não será necessário inicializar a coluna de texto para nulos e sempre será possível obter um ponteiro de texto.If the table has in row text, you do not have to initialize the text column for nulls and you can always get a text pointer.

A função ODBC SQLPutData é mais rápida e usa menos memória dinâmica que WRITETEXT.The ODBC SQLPutData function is faster and uses less dynamic memory than WRITETEXT. Esta função pode inserir até 2 gigabytes de dados de text, ntext ou image.This function can insert up to 2 gigabytes of text, ntext, or image data.

No SQL ServerSQL Server, podem existir ponteiros de texto em linha para os dados de text, ntext ou image, mas talvez eles não sejam 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).

PermissõesPermissions

Requer a permissão UPDATE na tabela especificada.Requires UPDATE permission on the specified table. A permissão será transferível quando a permissão UPDATE for transferida.Permission is transferable when UPDATE permission is transferred.

ExemplosExamples

O exemplo a seguir coloca o ponteiro de texto na variável local @ptrval e, depois, WRITETEXT coloca a nova cadeia de caracteres de texto na linha apontada por @ptrval.The following example puts the text pointer into the local variable @ptrval, and then WRITETEXT places the new text string into the row pointed to by @ptrval.

Observação

Para executar este exemplo, você deve instalar o banco de dados de exemplo pubs.To run this example, you must install the pubs sample 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'  
WRITETEXT pub_info.pr_info @ptrval 'New Moon Books (NMB) has just released another top ten publication. With the latest publication this makes NMB the hottest new publisher of the year!';  
GO  
ALTER DATABASE pubs SET RECOVERY SIMPLE;  
GO  

Consulte TambémSee Also

Tipos de dados (Transact-SQL) Data Types (Transact-SQL)
DECLARE @local_variable (Transact-SQL) DECLARE @local_variable (Transact-SQL)
DELETE (Transact-SQL) DELETE (Transact-SQL)
SELECT (Transact-SQL) SELECT (Transact-SQL)
Instruções SET (Transact-SQL) SET Statements (Transact-SQL)
UPDATETEXT (Transact-SQL)UPDATETEXT (Transact-SQL)