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

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

既存の textntext、または image フィールドを更新します。Updates an existing text, ntext, or image field. textntext、または image 型の列の一部だけを適切に変更するには、UPDATETEXT を使用します。Use UPDATETEXT to change only a part of a text, ntext, or image column in place. textntext、または image 型のフィールド全体を更新して置き換えるには、WRITETEXT を使用します。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. 代わりに、large-value データ型と 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.

重要

SQL ServerSQL Server ベースのアプリケーションでの BULK オプションの使用はお勧めしません。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
更新するテーブルと textntext、または 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
更新する textntext、または image 型のデータを指す、テキスト ポインター値を指定します。テキスト ポインター値は TEXTPTR 関数から返されます。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 は、 binary( 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 を起点とした開始位置から始まる既存の textntext、または 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
既存のtextntext、または 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 値は、text および image 型の列ではバイト単位で指定され、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 の場合、既存の text 型または image 型の列で、insert_offset の位置から終わりまでのすべてのデータが削除されます。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
既存の textntext、または image 型の列で insert_offset の位置に挿入されるデータです。Is the data to be inserted into the existing text, ntext, or image column at the insert_offset location. これは 1 つの charncharvarcharnvarcharbinaryvarbinarytextntext、または 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
挿入するデータのソースとして使用する、テーブルおよび textntext、または 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
挿入するデータのソースとして使用できる、textntext、または 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.

RemarksRemarks

新しく挿入するデータには、1 つの 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.

最適なパフォーマンスを得るには、8,040 バイトの倍数単位で textntext、および image 型データを挿入または更新することをお勧めします。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 では、textntext、または 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)