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

적용 대상: 예SQL Server 아니요Azure SQL Database 아니요Azure Synapse Analytics(SQL DW) 아니요병렬 데이터 웨어하우스 APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

기존 text, ntext 또는 image 필드를 업데이트합니다.Updates an existing text, ntext, or image field. UPDATETEXT를 사용하여 text, ntext 또는 image 열의 일부만 변경할 수 있습니다.Use UPDATETEXT to change only a part of a text, ntext, or image column in place. WRITETEXT를 사용하여 text, ntext 또는 image 필드 전체를 업데이트하고 바꿀 수 있습니다.Use WRITETEXT to update and replace a whole text, ntext, or image field.

중요

이 기능은 유지 관리 모드에 있으며, Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. 대신 큰 값 데이터 형식 및 UPDATE 문의 . WRITE 절을 사용합니다.Use the large-value data types and the . WRITE clause of the UPDATE statement instead.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙Topic link icon Transact-SQL Syntax Conventions

구문Syntax

  
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 } ]  

인수Arguments

BULKBULK
이진 데이터 스트림을 업로드하기 위해 업로드 도구를 사용합니다.Enables upload tools to upload a binary data stream. 스트림은 도구가 TDS 프로토콜 수준에서 제공해야 합니다.The stream must be provided by the tool at the TDS protocol level. 데이터 스트림이 없으면 쿼리 프로세서는 BULK 옵션을 무시합니다.When the data stream is not present the query processor ignores the BULK option.

중요

BULK 옵션은 SQL ServerSQL Server 기반 애플리케이션에서 사용하지 않는 것이 좋습니다.We recommend that the BULK option not be used in SQL ServerSQL Server-based applications. 이 옵션은 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
업데이트할 테이블 및 text, ntext 또는 image 열의 이름입니다.Is the name of the table and text, ntext, or image column to be updated. 테이블 이름과 열 이름은 식별자 규칙을 따라야 합니다.Table names and column names must comply with the rules for identifiers. 필요에 따라 데이터베이스 이름과 소유자 이름을 지정할 수 있습니다.Specifying the database name and owner names is optional.

dest_text_ptrdest_text_ptr
업데이트할 text, ntext 또는 image 데이터를 가리키는 텍스트 포인터 값(TEXTPTR 함수에서 반환된 값)입니다.Is a text pointer value (returned by the TEXTPTR function) that points to the text, ntext, or image data to be updated. text_ptr이진( 16 ) 이여야 합니다.dest_text_ptr must be binary( 16 ).

insert_offsetinsert_offset
업데이트의 경우 0부터 시작하는 시작 위치입니다.Is the zero-based starting position for the update. text 또는 image 열의 경우 insert_offset은 새 데이터를 삽입하기 전에 기존 열의 시작점에서부터 건너뛰어야 하는 바이트 수입니다.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. ntext 열의 경우 insert_offset는 문자 수입니다(각 ntext 문자는 2 바이트를 사용합니다).For ntext columns, insert_offsetis the number of characters (each ntext character uses 2 bytes). 0부터 시작하는 시작 위치에 있는 기존의 text, ntext 또는 image 데이터는 새 데이터에 필요한 공간을 만들기 위해 오른쪽으로 옮겨집니다.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. 값이 0이면 기존 데이터의 시작점에 새 데이터를 삽입합니다.A value of 0 inserts the new data at the beginning of the existing data. 값이 NULL이면 기존의 데이터 값에 데이터를 새로 추가합니다.A value of NULL appends the new data to the existing data value.

delete_lengthdelete_length
기존의 text, ntext 또는 image 열에서 삭제할 데이터의 길이로, insert_offset 위치부터 삭제됩니다.Is the length of data to delete from the existing text, ntext, or image column, starting at the insert_offset position. delete_length 값은 textimage 열에서는 바이트로 그리고 ntext 열에서는 문자로 지정됩니다.The delete_lengthvalue is specified in bytes for text and image columns and in characters for ntext columns. ntext 문자는 2바이트를 사용합니다.Each ntext character uses 2 bytes. 값이 0이면 데이터를 삭제하지 않습니다.A value of 0 deletes no data. 값이 NULL이면 insert_offset위치에서 기존의 text 또는 image 열의 끝까지 데이터를 모두 삭제합니다.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
로깅은 데이터베이스에 영향을 주는 복구 모델에 의해 결정됩니다.Logging is determined by the recovery model in effect for the database.

inserted_datainserted_data
insert_offset 위치에서 기존 text, ntext 또는 image 열로 삽입할 데이터입니다.Is the data to be inserted into the existing text, ntext, or image column at the insert_offset location. 이것은 단일 char, nchar, varchar, nvarchar, binary, varbinary, text, ntext 또는 image 값입니다.This is a single char, nchar, varchar, nvarchar, binary, varbinary, text, ntext, or image value. inserted_data는 리터럴 또는 변수일 수 있습니다.inserted_data can be a literal or a variable.

table_name.src_column_nametable_name.src_column_name
삽입된 데이터 원본으로 사용되는 text, ntext 또는 image 열 이름과 테이블의 이름입니다.Is the name of the table and text, ntext, or image column used as the source of the inserted data. 테이블 이름과 열 이름은 식별자 규칙을 따라야 합니다.Table names and column names must comply with the rules for identifiers.

src_text_ptrsrc_text_ptr
삽입된 데이터 원본으로 사용되는 text, ntext 또는 image 열을 가리키는 텍스트 포인터 값(TEXTPTR 함수에서 반환되는 값)입니다.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.

참고

scr_text_ptr 값은 dest_text_ptr 값과 같아서는 안됩니다.scr_text_ptr value must not be the same as dest_text_ptrvalue.

설명Remarks

새로 삽입되는 데이터는 단일 inserted_data 상수, 테이블 이름, 열 이름 또는 텍스트 포인터일 수 있습니다.Newly inserted data can be a single inserted_data constant, table name, column name, or text pointer.

업데이트 동작Update action UPDATETEXT 매개 변수UPDATETEXT parameters
기존 데이터를 바꾸려면To replace existing data Null이 아닌 insert_offset 값, 0이 아닌 delete_length 값 및 삽입할 새 데이터를 지정합니다.Specify a nonnull insert_offset value, a nonzero delete_length value, and the new data to be inserted.
기존 데이터를 삭제하려면To delete existing data Null이 아닌 insert_offset 값과 0이 아닌 delete_length를 지정합니다.Specify a nonnull insert_offset value and a nonzero delete_length. 삽입할 새 데이터를 지정하지 않습니다.Do not specify new data to be inserted.
새 데이터를 삽입하려면To insert new data insert_offset 값, 0의 delete_length 및 삽입할 새 데이터를 지정합니다.Specify the insert_offset value, a delete_length of 0, and the new data to be inserted.

최고의 성능을 위해 text, ntextimage 데이터는 8,040바이트의 배수인 청크 크기로 삽입하거나 업데이트하는 것이 좋습니다.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.

SQL ServerSQL Server에서는 text, ntext 또는 image 데이터에 대한 행 내부 텍스트 포인터가 있어도 유효하지 않을 수 있습니다.In SQL ServerSQL Server, in-row text pointers to text, ntext, or image data may exist but may not be valid. text in row 옵션에 대한 자세한 내용은 sp_tableoption(Transact-SQL)을 참조하십시오.For information about the text in row option, see sp_tableoption (Transact-SQL). 텍스트 포인터를 무효화하는 방법은 sp_invalidate_textptr(Transact-SQL)를 참조하십시오.For information about invalidating text pointers, see sp_invalidate_textptr (Transact-SQL).

text 열을 NULL로 초기화하려면 WRITETEXT를 사용합니다. UPDATETEXT는 text 열을 빈 문자열로 초기화합니다.To initialize text columns to NULL, use WRITETEXT; UPDATETEXT initializes text columns to an empty string.

사용 권한Permissions

지정된 테이블에 대해 UPDATE 권한이 필요합니다.Requires UPDATE permission on the specified table.

Examples

다음은 텍스트 포인터를 지역 변수인 @ptrval에 둔 다음 UPDATETEXT를 사용하여 맞춤법 오류를 업데이트하는 예입니다.The following example puts the text pointer into the local variable @ptrval, and then uses UPDATETEXT to update a spelling error.

참고

이 예를 실행하려면 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  

참고 항목See Also

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