Exportovat (0) Tisk
Rozbalit vše
Expand Minimize
Tento článek byl přeložen strojově počítačem. Původní text zobrazíte přesunutím ukazatele myši nad jednotlivé věty článku.
Překlad
Originál
Toto téma nebylo dosud ohodnoceno - Ohodnotit toto téma

UPDATE (Transact-SQL)

Změní existující data tabulka nebo zobrazení.

Pravidla syntaxe jazyka Transact-SQL


[ WITH <common_table_expression> [...n] ]
UPDATE 
    [ TOP ( expression ) [ PERCENT ] ] 
    { <object> | rowset_function_limited 
     [ WITH ( <Table_Hint_Limited> [ ...n ] ) ]
    }
       SET
        { column_name = { expression | DEFAULT | NULL }
          | { udt_column_name.{ { property_name = expression
                                | field_name = expression }
                                | method_name ( argument [ ,...n ] )
                              }
          }
          | column_name { .WRITE ( expression , @Offset , @Length ) }
          | @variable = expression
          | @variable = column = expression
          | column_name { += | -= | *= | /= | %= | &= | ^= | |= } expression
          | @variable { += | -= | *= | /= | %= | &= | ^= | |= } expression
          | @variable = column { += | -= | *= | /= | %= | &= | ^= | |= } expression
        } [ ,...n ] 

    [ <OUTPUT Clause> ]
    [ FROM{ <table_source> } [ ,...n ] ] 
    [ WHERE { <search_condition> 
            | { [ CURRENT OF 
                  { { [ GLOBAL ] cursor_name } 
                      | cursor_variable_name 
                  } 
                ]
              }
            } 
    ] 
    [ OPTION ( <query_hint> [ ,...n ] ) ]
[ ; ]

<object> ::=
{ 
    [ server_name . database_name . schema_name . 
    | database_name .[ schema_name ] . 
    | schema_name .
    ]
        table_or_view_name}
S common_table_expression < >

Určuje sada výsledků dotazu dotazu dočasného pojmenované nebo zobrazení, označované také jako společné tabulka výraz (CTE) definované v rámci příkazu UPDATE.CTE sada výsledků dotazu dotazu je odvozen z jednoduchý dotaz a odkazuje výraz UPDATE.Další informace naleznete v tématuS common_table_expression (Transact-SQL).

TOP ( expression) [ PERCENT ]

Specifies the number or percent of rows that will be updated. expression can be either a number or a percent of the rows.

Řádky, které odkazuje výraz TOP verzích INSERT, UPDATE, SLOUČENÍ nebo DELETE nejsou uspořádány v libovolném pořadí.

Závorky ohraničující expression v TOP jsou požadovány v příkazech INSERT, UPDATE, SLOUČENÍ a DELETE. Další informace naleznete v tématuTOP (Transact-SQL).

server_name

Is the name of the linked server on which the table or view is located. server_name can be specified as a linked server name, or by using the OPENDATASOURCE function.

Při vytváření server_name je zadán jako odkazovaný server database_name and schema_name jsou požadovány. Při vytváření server_name je určena s OPENDATASOURCE, database_name and schema_name nemusí vztahovat na všechny zdroje dat a má možnosti zprostředkovatel OLE databáze, který přistupuje k vzdálenému objektu. Další informace naleznete v tématuDistribuované dotazy.

database_name

Je název databáze.

schema_name

Je název schématu, do které tabulka nebo zobrazení patří.

table_or view_name

Je název tabulka nebo zobrazení, ze kterého je třeba aktualizovat řádky.

Proměnné Tabulka, v rámci svého obor, lze použít jako zdroj tabulky v výraz UPDATE.

Zobrazení, na které odkazuje table_or_view_name musí být aktualizovatelná a přesně jeden základní tabulka v klauzule FROM zobrazení odkazovat. Další informace o aktualizovatelné zobrazení naleznete v tématu CREATE VIEW jazyka Transact-SQL).

rowset_function_limited

Je buď OPENQUERY or OPENROWSET funkce.Použití těchto funkcí podléhá možnosti zprostředkovatel OLE databáze, který přistupuje k vzdálenému objektu.Další informace naleznete v tématuDistribuované dotazy.

WITH ( <Table_Hint_Limited> )

Určuje jednu nebo více tipy tabulka, které jsou povoleny pro cílová databáze tabulka.Klíčové slovo WITH a v závorkách jsou vyžadovány.Nejsou povoleny NOLOCK a READUNCOMMITTED.Informace o odkazy na tabulka naleznete v tématu Tabulka tipy (Transact-SQL).

sada

Určuje seznam sloupců nebo názvy proměnných, které mají být aktualizovány.

column_name

Is a column that contains the data to be changed. column_name must exist in table_or view_name.Sloupce identity nelze aktualizovat.

expression

Je proměnná, hodnotu literálu, výrazu nebo výběru výraz (uzavřený v závorkách), který vrací jedinou hodnotu.Hodnotu vrácenou expression nahradí existující hodnotu column_name Nebo @variable.

NoteNote:

Při odkazování na datové typy Unicode znaku nchar, nvarcharand ntext, by měly být s velkým písmenem předponou "výraz" severní šířky ". Pokud 'N' není zadána, SQL Server Převede řetězec na znaková stránka, která odpovídá výchozí kolace databáze nebo sloupec. Nebyl nalezen v této stránka kód znaky jsou ztraceny.

Výchozí

Určuje, že výchozí hodnotu definovanou pro sloupec je nahradit existující hodnotu sloupec.To lze také změnit sloupec NULL sloupec má-li žádná výchozí a je definována povolit hodnoty null.

{ += | -= | *= | /= | %= | &= | ^= | |= }

Složené operátor přiřazení:

+= Přidat a přiřazení

-= Odečíst a přiřazení

* = Násobit a přiřazení

/ = Dělení a přiřazení

% = Modulo a přiřazení

&= A bitové a přiřazení

^ = Bitového operátoru XOR a přiřazení

| = Bitového operátoru OR a přiřazení

udt_column_name

Je uživatelsky definovaný typ sloupec.

property_name | field_name

Je veřejné vlastnosti nebo veřejné datové člen uživatelsky definovaný typ.

method_name(argument [ ,... n] )

Je metoda nonstatic mutator veřejné udt_column_name která přijímá jeden nebo více argumentů.

.WRITE (expression,@Offset,@Length)

Specifies that a section of the value of column_name is to be modified. expression replaces @Length units starting from @Offset of column_name.Only columns of varchar(max), nvarchar(max), or varbinary(max) can be specified with this clause. column_name cannot be NULL and cannot be qualified with a table name or table alias.

expression is the value that is copied to column_name. expression must evaluate to or be able to be implicitly cast to the column_name type.Pokud expression je sada na hodnotu NULL, @Length je ignorována a hodnoty v column_name je zkrácena na určeném @Offset.

@Offset is the starting point in the value of column_name at which expression is written. @Offset is a zero-based ordinal position, is bigint, and cannot be a negative number.Pokud @Offset je NULL, připojí operace aktualizace expression na konci existující column_name hodnota a @Length je ignorována. Pokud je větší než délka @ posun column_name hodnota, Database Engine Vrátí chybu. Pokud @Offset plus @Length odstranění dojde až na poslední znak hodnota přesahuje konec podkladové hodnoty sloupec. Pokud @Offset plus (délkaexpression) je větší než nadřazená deklarován velikost, je aktivována chybu.

@Length is the length of the section in the column, starting from @Offset, that is replaced by expression. @Length is bigint and cannot be a negative number.Pokud @Length NULL, je operace aktualizace odebere všechna data z @Offset na konec column_name Value.

Další informace naleznete v části poznámky.

@variable

Se deklarované proměnné, která je nastavena na hodnotu vrácenou expression.

sada @variable = column = expression nastavuje proměnnou na stejnou hodnotu jako sloupec. Tím se liší od sada @variable = column, column = expression, které nastaví proměnné pre-update hodnotu sloupec.

<OUTPUT_Clause>

Vrátí aktualizována data nebo jako součást operace UPDATE na základě výrazů.Klauzule OUTPUT není podporován v žádné jazyk DML příkazy, které cílová databáze vzdálené tabulky nebo zobrazení.Další informace naleznete v tématuKlauzule OUTPUT (Transact-SQL).

FROM table_source < >

Určí, že tabulka, zobrazení nebo odvozené tabulka zdroj je stanovit kritéria pro operace aktualizace.Další informace naleznete v tématuFROM (Transact-SQL).

Pokud objekt aktualizován je stejný jako objekt v klauzule FROM a existuje pouze jeden odkaz na objekt v klauzule FROM, alias objektu mohou nebo nesmí být určen.Pokud objekt, aktualizovány se zobrazí více než jednou v klauzule FROM, jednu a pouze jedna, odkaz na objekt nutné zadat alias tabulka.Všechny ostatní odkazy na objekt v klauzule FROM musí zahrnovat alias objektu.

Zobrazení pomocí aktivační procedury INSTEAD OF UPDATE nemůže být cílová databáze UPDATE s klauzule FROM.

kde

Určuje podmínky, které omezit řádky, které jsou aktualizovány.Existují dvě formy aktualizace, které formu klauzule WHERE se používá na základě:

  • Prohledat aktualizace zadejte vyhledávací podmínka pro poskytnutí řádky odstranit.

  • Umístí aktualizace použití klauzule aktuální OF určit kurzor.Operace aktualizace se uskuteční na aktuální pozici kurzor.

<search_condition>

Určuje podmínku, která mají být splněny při řádků, které mají být aktualizovány.vyhledávací podmínka Může být také podmínky, na kterém je založena spojit.Neexistuje žádné omezení počtu predikáty, které lze zahrnout v podmínce vyhledávání.Další informace o predikáty a podmínek vyhledávání naleznete v tématu vyhledávací podmínka (Transact-SQL).

PROUDU

Určuje provedení aktualizace v aktuální pozici zadaného kurzor.

Global (globální),

Určuje, že cursor_name odkazuje na globální kurzor.

cursor_name

Je název otevřené kurzor, ze kterého je třeba načtení.Pokud jako globální i místní kurzoru s názvem cursor_name Existují tento argument se vztahuje k globální kurzor pokud GLOBAL je zadaný; jinak, odkazuje na místní kurzor. Kurzor musí umožnit aktualizace.

cursor_variable_name

Is the name of a cursor variable. cursor_variable_name must reference a cursor that allows updates.

OPTION ( <query_hint> [ ,... n ] )

Určí, že pomocné body Optimalizátor upravit způsob Database Engine zpracování výraz. Další informace naleznete v tématuRady při psaní dotazu (Transact-SQL).

výraz UPDATE plně zaznamenána; však částečné aktualizuje na velké hodnoty datových typů pomocí . ZÁPIS klauzule minimálně přihlášeni.Další informace naleznete v tématu "Aktualizace velké hodnoty datových typů" následující.

Příkazy UPDATE jsou povoleny v těle uživatelem definované funkce, pouze pokud je tabulka, upravovaný proměnné Tabulka.

Pokud aktualizaci řádku porušuje omezení nebo pravidla, porušuje NULL nastavení sloupec nebo nové hodnoty je nekompatibilní typ. výraz bude zrušeno, je vrácena chyba a jsou aktualizovány žádné záznamy.

Když výraz SQL UPDATE narazí na chybu aritmetické (přetečení dělení nula nebo chybu doména) při vyhodnocení výrazu, není prováděna aktualizace.Zbytek dávka není spuštěn a je vrácena chybová zpráva.

Pokud aktualizaci sloupec nebo sloupců, které účastní clusterovaný index způsobí, že velikost řádků překročí 8,060 bajtů a clusterovaný index, aktualizace se nezdaří a je vrácena chybová zpráva.

Všechna char and nchar sloupce jsou právo čalouněny definované délky.

Pro příkazy UPDATE proti vzdálené tabulek a rozdělených zobrazení místních a vzdálených ignorováno sada sada ROWCOUNT možnosti.

Pokud je ANSI_PADDING sada na OFF, všechny koncové mezery jsou odstraněny z data vložit do varchar and nvarchar sloupce, s výjimkou řetězce obsahující pouze mezery. Tyto řetězce jsou zkráceny na prázdný řetězec.Pokud je ANSI_PADDING sada vloženy ON, koncové mezery.Řidiče Microsoft SQL Server ODBC a OLE databáze zprostředkovatel for SQL Server automaticky ANSI_PADDING sada ON pro každé připojení.To lze nakonfigurovat ve zdrojích dat ODBC nebo nastavení atributů připojení nebo vlastnosti.Další informace naleznete v tématusada ANSI_PADDING (Transact-SQL).

Umístit aktualizace, pomocí klauzule WHERE aktuální o aktualizuje jeden řádek v aktuální pozici kurzoru.To může být přesnější než prohledávaných aktualizaci, která používá klauzuli WHERE <search_condition> klauzule pro poskytnutí řádků, které mají být aktualizovány. Prohledávaný aktualizace upravuje více řádků, když je vyhledávací podmínka neidentifikuje jednoznačně jeden řádek.

Pomocí UPDATE FROM klauzule

Pokud výraz zahrnuje klauzule FROM není zadaný v takové tak, aby pouze jedna hodnota je k dispozici pro každý sloupec výskyt, který je aktualizována, tj. Pokud výraz UPDATE, není deterministický, jsou výsledky výraz UPDATE nedefinované.Například v UPDATE výraz v následujícím skriptu oba řádky v Table1 splňovat kvalifikace FROM Klauzule v UPDATE výraz, ale je undefined které řádku z Table1 slouží k aktualizaci v řádku Table2.

Stejný problém může nastat, jsou kombinaci klauzulí FROM a WHERE CURRENT OF.V následujícím příkladu, oba řádky v Table2 splňovat kvalifikace FROM Klauzule v UPDATE výraz. Je nedefinovaný, které z řádku Table2 má být použita k aktualizaci v řádku Table1.

Aktualizace uživatelsky definovaný typ sloupce

Aktualizace hodnot ve sloupcích uživatelsky definovaný typ lze provést jedním z následujících způsobů:

  • Zadání hodnoty do SQL Server systém datový typ, tak dlouho, dokud uživatelsky definovaný typ podporuje implicitní nebo explicitní převod z tohoto typu. Následující příklad ukazuje, jak aktualizovat hodnotu sloupec uživatelsky definovaný typ Point, převedením explicitně z řetězce.

    UPDATE Cities
    SET Location = CONVERT(Point, '12.3:46.2')
    WHERE Name = 'Anchorage';
    
  • Vyvolání metoda, je označen jako mutator, typu uživatelem definované, chcete-li provést aktualizaci.V následujícím příkladu vyvolá metoda mutator typu Point s názvem SetXY. Toto tlačítko aktualizujete stav instance typu.

    UPDATE Cities
    SET Location.SetXY(23.5, 23.5)
    WHERE Name = 'Anchorage';
    
    NoteNote:

    SQL Server Vrátí chybu, pokud je na vyvolána metoda mutator Transact-SQL Hodnota Null, nebo pokud produkované novou hodnotu Metoda mutator null.

  • Úprava hodnotu registrované vlastnost nebo veřejné datové člen uživatelsky definovaný typ.Výraz poskytující hodnotu, musí být implicitně převést na typ vlastnost.Následující příklad změní hodnotu vlastnosti X o uživatelsky definovaný typ Point.

    UPDATE Cities
    SET Location.X = 23.5
    WHERE Name = 'Anchorage';
    

    Chcete-li změnit jiné vlastnosti sloupec stejný uživatelsky definovaný typ, vydat vícenásobné příkazy UPDATE nebo vyvolat metoda mutator typu.

Aktualizace velké hodnoty datových typů

Use the .WRITE (expression, @Offset,@Length) clause to perform a partial or full update of varchar(max), nvarchar(max), and varbinary(max) data types.Například částečnou aktualizaci z varchar(max) sloupec může odstranit nebo upravit pouze prvních 200 znaků sloupci, vzhledem k tomu, že by úplnou aktualizaci odstranit nebo upravit data ve sloupci. . ZÁPIS, aktualizace, které vložit nebo připojit nová data jsou protokolovány alespoň pokud model obnovení databáze je sada zaznamenána hromadného nebo jednoduché.Minimální protokolování není používán, když jsou aktualizovány stávající hodnoty.Další informace naleznete v tématuOperace, které může být minimálně Evidovaný.

Složka Database Engine Převede částečnou aktualizaci úplnou aktualizaci při výraz UPDATE způsobí některou z těchto akcí:

  • Změní klíčový sloupec rozdělených zobrazení nebo tabulka.

  • Upravuje více než jeden řádek a také aktualizuje klíč nejedinečný seskupeného indexu na hodnotu nonconstant.

Nelze použít . Klauzule aktualizovat sloupec NULL nebo nastavte hodnotu zápisu column_name na hodnotu NULL.

@Offset and @Length jsou uvedena v bajtech pro varbinary and varchar datové typy a znaky nvarchar Typ dat. Příslušná pořadová čísla jsou vypočítána pro dvoubajtové znakové sada (DBCS) řazení.

Pro nejlepší výkon doporučujeme, aby data byla vložena nebo aktualizována v velikosti blok dat dat, které jsou násobkem 8040 bajtů.

Pokud sloupce změněno tak, . ZÁPIS klauzule je odkazován v klauzuli OUTPUT úplné hodnoty sloupce, buď před obraz v deleted.column_name nebo po obrázek v inserted.column_name, je vrácena zadaný sloupec tabulka proměnné. Viz příklad G, která následuje.

K dosažení stejné funkce . ZÁPIS s jinými znak nebo typy binární data, použijte Vlastní položky (Transact-SQL).

Aktualizace text, ntext a image sloupce

Změna text, ntextNebo image sloupec s UPDATE inicializuje sloupci přiřadí platný textový ukazatel a přidělí alespoň jednu datovou stránka, pokud sloupec je aktualizován s hodnotou NULL. Pokud výraz UPDATE může při aktualizaci jak clustering klíč a jeden nebo více změnit více než jeden řádek text, ntextNebo image sloupce částečnou aktualizaci na tyto sloupce se spustí jako úplná náhrada hodnot.

Chcete-li nahradit nebo upravit velkých bloků text, ntextNebo image použití dat, WRITETEXT or UPDATETEXT namísto výraz UPDATE.

Important noteImportant Note:

The ntext, text, and image data types will be removed in a future version of Microsoft SQL Server.Vyhněte se použití těchto datových typů v nové vývojové práce a chcete upravit aplikace, které je aktuálně používají.Pomocí nvarchar(max), varchar(max), and Varbinary(max) místo.Další informace naleznete v tématuPomocí velké hodnoty datových typů.

Pomocí místo vzniku aktivační události na akce UPDATE

Aktivační procedury INSTEAD OF je definován na akce UPDATE proti tabulka, aktivační události je spuštěn namísto výraz UPDATE.Starší verze SQL Server podporují pouze po aktivační události definované v UPDATE a ostatní příkazy změny data. V výraz UPDATE odkazující, přímo nebo nepřímo, zobrazení pomocí aktivační procedury INSTEAD OF definovaná na jej nelze zadat klauzule FROM.Další informace o místo vzniku aktivačních událostí naleznete v tématu CREATE TRIGGER jazyka Transact-SQL).

Nastavení proměnných a sloupce

V názvech proměnných lze v příkazech UPDATE zobrazit staré a nové hodnoty, které jsou ovlivněny, ale to by mělo být použít pouze v případě, že výraz UPDATE má vliv na jediný záznam.Pokud výraz UPDATE ovlivní více záznamů, vrátíte stará a nová hodnota pro každý záznam, použijte Klauzule OUTPUT.

Aktualizace společného výraz tabulka

Při společné tabulka výraz (CTE), je cílová databáze příkazu UPDATE, musí odpovídat všechny odkazy na CTE ve výkazu.Pokud CTE je přiřazen alias v klauzule FROM, alias musí být použít například pro všechny ostatní odkazy CTE.Jednoznačné CTE odkazy jsou požadovány, protože CTE nemá IDENTIFIKÁTOR objektu, který SQL Server používá se k identifikaci implicitní vztah mezi objektem a jeho alias. Bez tento vztah mohl předložit plán dotazů spojit neočekávané chování a výsledky dotazu nezamýšlená.Následující příklady ukazují správné a nesprávné metody určení CTE CTE je objekt cílová databáze operace aktualizace.

Here is the result set.

Hodnota ID

------ -----

1      100

2      200

(2 ovlivněné řádky)

Here is the result set.

Hodnota ID

------ -----

1      100

2      100

(2 ovlivněné řádky)

V cílová databáze tabulce, jsou vyžadována oprávnění UPDATE.Oprávnění SELECT jsou také požadovány pro tabulce aktualizován, je-li výraz UPDATE obsahuje klauzuli WHERE nebo expression Klauzule v sada používá sloupec tabulka.

UPDATE výchozí oprávnění pro členy sysadmin pevná pevná role serveru, db_owner and db_datawriter pevné databázové role a vlastníka tabulka. Členové sysadmin, db_ownerand db_securityadmin role a vlastníka tabulka lze přenést oprávnění jiným uživatelům.

A.Pomocí jednoduchého výraz UPDATE

Je vidět z následujících příkladů, jak mohou být ovlivněny všechny řádky při klauzule WHERE není slouží k řádku nebo aktualizovat řádky.

V tomto příkladu aktualizuje hodnoty Bonus, CommissionPctand SalesQuota sloupce pro všechny řádky v SalesPerson TABULKA.

Vypočtených hodnot můžete také použít v výraz UPDATE.V následujícím příkladu se zdvojnásobí hodnota v ListPrice sloupec pro všechny řádky v Product TABULKA.

B.Pomocí klauzule WHERE výraz UPDATE

Následující příklad používá klauzule WHERE, chcete-li zadat řádky, které chcete aktualizovat.Například Adventure Works Cycles prodává jejich model jízdních kol Road-250 ve dvou barev: červené a černé. Chcete-li změnit barvu červenou pro tento model na červenou kovové rozhodla společnosti.Následující výraz aktualizuje řádky v Production.Product Tabulka pro všechny produkty červené Road-250.

C:\.Pomocí výraz UPDATE informace z jiné tabulka

Následující příklad upravuje SalesYTD sloupec v SalesPerson tabulky odrážet nejnovější prodejní zaznamenané v SalesOrderHeader TABULKA.

Předchozí příklad předpokládá, že tento prodej pouze jeden je zaznamenána pro zadaný prodejce na určité datum a že se aktualizace jsou aktuální.Pokud více než jeden prodej pro zadané prodejci mohou být zaznamenány ve stejný den, v příkladu zobrazena nebude správně fungovat.V příkladu se spouští bez chyb, ale každý SalesYTD hodnota je aktualizován pouze jeden prodeje, bez ohledu na to, kolik prodejů skutečně došlo v daný den. Důvodem je, že jeden výraz UPDATE nikdy aktualizuje na stejném řádku dvakrát.

V situaci, ve které prodej více než jeden pro zadaný prodejce může dojít ke stejnému dni prodej každého prodejce musí agregují společně v rámci UPDATE výraz, jak je uvedeno v tomto příkladu:

D.Pomocí klauzule TOP UPDATE

Následující příklad aktualizace VacationHours sloupec o 25 procent 10 náhodných řádků v Employee TABULKA.

E.Pomocí OUTPUT klauzule UPDATE

Následující příklad aktualizace VacationHours sloupec v Employee Tabulka 25 procent pro prvních 10 řádků. Složka OUTPUT klauzule vrátí hodnotu VacationHours které existuje před aplikováním UPDATE výraz v DELETED.VacationHours sloupec a aktualizované hodnoty v INSERTED.VacationHours sloupec @MyTableVar Proměnná tabulka.

Dvě SELECT příkazy, postupujte podle zobrazených hodnot v @MyTableVar a výsledky operace aktualizace v Employee TABULKA. Poznamenejte si výsledky v INSERTED.ModifiedDate sloupec se liší od hodnoty v ModifiedDate sloupce v Employee TABULKA. Je to proto, AFTER UPDATE aktivační událost, která aktualizuje hodnotu ModifiedDate aktuální datum je definováno na Employee TABULKA. Však vráceny sloupce OUTPUT odrážejí data před při vyvolání aktivační události. Pomocí klauzule OUTPUT Další příklady naleznete v tématu Klauzule OUTPUT (Transact-SQL).

F.Pomocí klauzule WITH common_table_expression UPDATE

The following example updates the VacationHours value by 25 percent for all employees reporting directly or indirectly to ManagerID12.The common table expression returns a hierarchical list of employees who report directly to ManagerID12 and employees who report to those employees, and so on.Jsou změněny pouze řádky vrácené výraz společné tabulka.Další informace o běžných výrazů tabulka rekurzivní naleznete v tématu Rekurzivní dotazy pomocí běžné výrazy tabulka.

G.Pomocí klauzule .WRITE UPDATE ke změně dat v sloupec nvarchar(max)

V následujícím příkladu . Klauzule aktualizovat částečné hodnoty v zápisuDocumentSummary, nvarchar(max) sloupec v Production.Document TABULKA. Slovo components je nahrazen slovo features zadáním slova náhradní počáteční umístění (odsazení) slova, která má být nahrazen stávající data a počtu znaků, které mají být nahrazeny (délka). The example also uses the OUTPUT clause to return the before and after images of the DocumentSummary column to the @MyTableVartable variable.

H.Přidání a odebrání dat v sloupec nvarchar(max) pomocí UPDATE s .WRITE

Následující příklady přidání a odebrání dat z nvarchar(max) sloupec, který má hodnotu aktuálně sada na hodnotu NULL. Protože v dialogovém okně . ZÁPIS klauzule nelze použít sloupec NULL upravit, sloupci je naplněna nejprve dočasná data.Tato data pak nahrazen správná data pomocí .WRITE klauzule. Další příklady data připojit na konec hodnotu sloupec, odebrat (zkracování) data ze sloupec a nakonec odebrat částečná data ze sloupec.Složka SELECT příkazy zobrazit změny dat generovaných každý UPDATE výraz.

I.UPDATE pomocí OPENROWSET varbinary(max) chcete sloupec upravit

V následujícím příkladu nahradí existující obraz, který je uložen v varbinary(max) sloupec s novou bitovou kopii. Složka OPENROWSET funkce se používá s BULK možnost, chcete-li načíst obraz do kolony. Tento příklad předpokládá, že soubor s názvem Tires.jpg v zadaná cena existuje.

J.UPDATE pomocí SELECT @ local_variable a složené operátor

V následujícím příkladu je použita proměnná @NewPrice Chcete-li zvýšit ceny všech červené jízdních kol převzetím aktuální ceny a přidáním 10 k němu.

K.Pomocí UPDATE v uložená procedura

Následující příklad používá výraz SQL UPDATE v uložená procedura.Postup trvá jeden vstupní parametr @NewHours. Hodnota parametru v výraz UPDATE slouží k aktualizaci sloupec VacationHours tabulka HumanResources.Employee. VELKÁ výraz se používá v klauzule sada k podmíněně určovat hodnotu, která je nastavena pro VacationHours. Při zaměstnance je zaplacena hodinové)SalariedFlag = 0), VacationHours je nastavena na aktuální počet hodin plus hodnota zadaná v @NewHours; v opačném případě VacationHours je nastavena na hodnotu podle @NewHours.

Aktualizovaný obsah

V části "Aktualizace společné tabulka výraz" přidána.

Přidané příklad "použití UPDATE v uložené proceduře."

Byl tento obsah pro vás užitečný?
(Zbývající počet znaků: 1500)
Děkujeme za váš názor.
Zobrazit:
© 2014 Microsoft. Všechna práva vyhrazena.