WRITETEXT (Transact-SQL)WRITETEXT (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 列の最小限ログに記録する対話型の更新を許可します。Permits minimally logged, interactive updating of an existing text, ntext, or image column. WRITETEXT は、影響のある列内の既存のすべてのデータを上書きします。WRITETEXT overwrites any existing data in the column it affects. WRITETEXT をビュー内の text 列、ntext 列、image 列に対して使用することはできません。WRITETEXT cannot be used on text, ntext, and image columns in views.

重要

この機能はメンテナンス モードであり、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

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

引数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 .columntable .column
更新するテーブルと textntext、または image 型の列の名前。Is the name of the table and text, ntext, or image column to update. テーブル名と列名は、識別子のルールに従っている必要があります。Table and column names must comply with the rules for identifiers. データベース名と所有者名の指定は省略可能です。Specifying the database name and owner names is optional.

text_ptrtext_ptr
textntext、または image データへのポインターを保存する値です。Is a value that stores the pointer to the text, ntext, or image data. text_ptrbinary(16) にする必要があります。テキスト ポインターを作成するには、textntext、または image 列に対して NULL 以外のデータを使用する INSERT ステートメントまたは UPDATE ステートメントを実行します。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
SQL ServerSQL Server では無視されます。Ignored by SQL ServerSQL Server. ログ記録は、データベースで有効になっている復旧モデルによって異なります。Logging is determined by the recovery model in effect for the database.

datadata
格納する実際の textntext、または image データです。Is the actual text, ntext or image data to store. data には、リテラルまたはパラメーターを指定することができます。data can be a literal or a parameter. WRITETEXT を使用して対話的に挿入可能なテキスト長の最大値は、textntext、および image データで約 120 KB です。The maximum length of text that can be inserted interactively with WRITETEXT is approximately 120 KB for text, ntext, and image data.

RemarksRemarks

WRITETEXT を使用して textntext、および image データを置き換え、UPDATETEXT を使用して textntext、および image データを変更します。Use WRITETEXT to replace text, ntext, and image data and UPDATETEXT to modify text, ntext, and image data. UPDATETEXT は、textntext、または image 列の全体ではなく一部のみを変更するため柔軟性があります。UPDATETEXT is more flexible because it changes only a part of a text, ntext, or image column instead of the whole column.

最高のパフォーマンスが得られるよう、8,040 バイトの倍数の単位で textntext、および image データを挿入または更新することをお勧めします。For best performance we recommend that text, ntext, and image data be inserted or updated in chunk sizes that are multiples of 8040 bytes.

データベース復旧モデルが単純復旧モデルまたは一括ログ復旧モデルである場合は、新しいデータを挿入または追加するときに、WRITETEXT を使用する textntext、および image 操作は最小限しかログに記録されません。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.

注意

既存の値を更新するときには、最小限のログ記録は使用されません。Minimal logging is not used when existing values are updated.

WRITETEXT が正しく機能するためには、その列は既に有効なテキスト ポインターを含んでいる必要があります。For WRITETEXT to work correctly, the column must already contain a valid text pointer.

テーブルに行内テキストがない場合、SQL ServerSQL Server は、明示的または暗黙的な NULL 値が INSERT によって text 列に挿入されているときに text 列の初期化を省略することによって領域を節約しますが、そのような NULL に対するテキスト ポインターは取得できません。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. text 列を初期化して NULL にするには、UPDATE ステートメントを使用します。To initialize text columns to NULL, use the UPDATE statement. テーブルに行内テキストがある場合、テキスト列を初期化して NULL にする必要はなく、常にテキスト ポインターを取得できます。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.

ODBC SQLPutData 関数は、WRITETEXT に比べ高速で、使用する動的メモリの量も少なくなります。The ODBC SQLPutData function is faster and uses less dynamic memory than WRITETEXT. この関数は、最大 2 GB までの textntext、または image データを挿入できます。This function can insert up to 2 gigabytes of text, ntext, or image data.

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).

アクセス許可Permissions

指定したテーブルの UPDATE 権限が必要です。Requires UPDATE permission on the specified table. UPDATE 権限が転送されるときに、この権限は譲渡できます。Permission is transferable when UPDATE permission is transferred.

使用例Examples

次の例では、テキスト ポインターをローカル変数 @ptrval に置き、WRITETEXT が指す行に @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.

注意

この例を実行するには、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  

参照See Also

データ型 (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)
SET ステートメント (Transact-SQL) SET Statements (Transact-SQL)
UPDATETEXT (Transact-SQL)UPDATETEXT (Transact-SQL)