WRITETEXT (Transact-SQL)

gäller för:SQL ServerAzure SQL Managed Instance

Tillåter minimalt loggad, interaktiv uppdatering av en befintlig text-, ntext- eller bildkolumn . WRITETEXT skriver över all befintlig data i kolumnen som påverkas. WRITETEXT kan inte användas på text-, ntext- och bildkolumner i vyer.

Important

Den här funktionen tas bort i en framtida version av SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Använd de stora värdedatatyperna och . WRITE-klausulen i uttalandet UPDATE istället.

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

OMFÅNG
Möjliggör uppladdningsverktyg för att ladda upp en binär dataström. Strömmen måste tillhandahållas av verktyget på TDS-protokollnivå. När dataströmmen inte finns närvarande ignorerar frågeprocessorn BULK-alternativet.

Important

Vi rekommenderar att BULK-alternativet inte används i applikationer baserade på SQL Server. Detta alternativ kan ändras eller tas bort i en framtida version av SQL Server.

table.column
Är namnet på tabellen och texten, ntext eller bildkolumnen som ska uppdateras. Tabell- och kolumnnamn måste följa reglerna för identifierare. Att ange databasens namn och ägarnamn är valfritt.

text_ptr
Är ett värde som lagrar pekaren till text-, ntext- eller bilddata . text_ptr måste vara binär(16). För att skapa en textpekare, kör en INSERT or-sats UPDATE med data som inte är null för kolumnen text, ntext eller bild .

MED LOGG
Ignoreras av SQL Server. Loggning bestäms av återställningsmodellen som gäller för databasen.

data
Är det den faktiska texten, ntexten eller bilddata som ska lagras. Data kan vara en bokstavlig eller en parameter. Den maximala längden text som kan infogas interaktivt med WRITETEXT är cirka 120 KB för text-, ntext- och bilddata .

Remarks

Använd WRITETEXT för att ersätta text, ntext och bilddata och UPDATETEXT för att ändra text, ntext och bilddata . UPDATETEXT är mer flexibelt eftersom det bara ändrar en del av en text-, ntext- eller bildkolumn istället för hela kolumnen.

För bästa prestanda rekommenderar vi att text-, ntext- och bilddata infogas eller uppdateras i chunk-storlekar som är multiplar av 8040 byte.

Om databasåterställningsmodellen är enkel eller bulkloggad, är text-, ntext- och bildoperationer som använder WRITETEXT minimalt loggade operationer när ny data infogas eller läggs till.

Anmärkning

Minimal loggning används inte när befintliga värden uppdateras.

För att WRITETEXT ska fungera korrekt måste kolumnen redan innehålla en giltig textpekare.

Om tabellen inte har text i raden sparar SQL Server utrymme genom att inte initiera textkolumner när explicita eller implicita nullvärden läggs till i textkolumner med INSERT, och ingen textpekare kan erhållas för sådana nulltal. För att initiera textkolumner till NULL, använd satsen UPDATE . Om tabellen har text i rad behöver du inte initiera textkolumnen för nullpunkter och du kan alltid få en textpekare.

ODBC:s SQLPutData-funktion är snabbare och använder mindre dynamiskt minne än WRITETEXT. Denna funktion kan infoga upp till 2 gigabyte text, ntext eller bilddata .

I SQL Server kan textpekare i rad finnas till text-, ntext- eller bilddata men de kan vara ogiltiga. För information om alternativet text i rad, se sp_tableoption (Transact-SQL). För information om att ogiltigförklara textpekare, se sp_invalidate_textptr (Transact-SQL).

Permissions

Kräver UPDATE behörighet på den angivna tabellen. Tillstånd kan överföras när UPDATE tillstånd överförs.

Examples

Följande exempel placerar textpekaren i den lokala variabeln @ptrval, och placerar sedan WRITETEXT den nya textsträngen i raden som pekas på av @ptrval.

Anmärkning

För att köra detta exempel måste du installera pubs sample-databas.

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  

Se även

Datatyper (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
DELETE (Transact-SQL)
SELECT (Transact-SQL)
SET Instruktioner (Transact-SQL)
UPPDATERINGSTEXT (Transact-SQL)