UPDATE (Transact-SQL)

Varolan bir tablo veya Görünüm verileri değiştirir.

Topic link iconTransact-SQL sözdizimi kuralları

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

Bağımsız değişkenler

  • > < Common_table_expression
    Sonuç olarak adlandırılan geçici belirtir küme veya UPDATE ifadeinin kapsam içinde tanımlanan görünüm, genel tablo ifade (CTE) olarak da bilinir.CTE sonuç kümesi, basit bir sorgudan elde edilen ve UPDATE deyim tarafından başvurulmaktadır.Daha fazla bilgi için bkz:WITH 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.

    Bir sipariş. olmayan satır INSERT, UPDATE, BİRLEŞTİRMEK veya DELETE kullanılan TOP ifade içinde başvurulan düzenlenir

    Parantez sınırlayanexpressionTOP, gerekli INSERT, UPDATE, BİRLEŞTİRMEK ve DELETE ifadeleri.Daha fazla bilgi için bkz:TOP (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.

    Zamanserver_namebağlantılı sunucu olarak belirtilendatabase_nameveschema_namegereklidir.Zamanserver_namebelirtilmişse, OPENDATASOURCE iledatabase_nameveschema_nameuygulama tüm veri kaynaklarına ve olduğu için özellikleri OLE DB sağlayıcısına erişim, uzak nesne.Daha fazla bilgi için bkz:Dağıtılmış sorgular.

  • database_name
    Veritabanının adıdır.

  • schema_name
    Hangi şema adı tablo veya görünüme ait.

  • table_or view_name
    Tablo veya Görünüm içinden güncelleştirilecek satırları olan adıdır.

    Bir tablo değişkeni, kapsam içinde bir UPDATE deyim, tablo kaynağı olarak kullanılabilir.

    Görünümde başvurulan tarafındantable_or_view_namegüncellenebilir olmalı ve bir temel tablo görünümüne. FROM yan tümcesinde başvurusuGüncelleştirilebilir görünümler hakkında daha fazla bilgi için bkz:VIEW (Transact-SQL) CREATE.

  • rowset_function_limited
    Ya da işOPENQUERY veya OPENROWSET işlev. Bu işlevler uzak nesne erişen OLE DB sağlayıcı özellikleri için kullanılır.Daha fazla bilgi için bkz:Dağıtılmış sorgular.

  • WITH ( <Table_Hint_Limited> )
    Hedef tablo için izin verilen bir veya daha fazla tablo ipuçlarını belirtir.WITH anahtar sözcüğünü ve ayraçlar gereklidir.NOLOCK ve READUNCOMMITTED izin verilmez.Tablo ipuçları hakkında bilgi için bkz:Tablo ipuçları (Transact-SQL).

  • küme
    Sütun veya güncelleştirilmesi için değişken adları listesini belirtir.

  • column_name
    Is a column that contains the data to be changed.column_name must exist in table_or view_name.Kimlik sütunları güncelleştirilemiyor.

  • expression
    Bir değişkeni, hazır bilgi değeri, ifade ya da tek bir değer döndürür (ile parantez) bir subselect ifade belirtilir.Tarafından döndürülen değerexpressionVarolan değeri de değiştirir.column_nameor@variable.

    Not

    Unicode karakter veri türlerini göndermenchar,nvarchar, ventext, ' ifade ' büyük harfle öneki 'n '., 'N' belirtilmemiş,SQL Serverdönüştürür dize için varsayılan harmanlama veritabanı veya sütun. karşılık gelen kod sayfaBu kod sayfasında bulunmayan tüm karakterleri kaybolur.

  • Varsayılan
    Sütun için tanımlanan varsayılan değeri sütundaki varolan değerin yerini belirtir.Bu da sütunun varsayılan ve null değerlere izin vermek için tanımlanmış sütun için null olarak değiştirmek için kullanılabilir.

  • { += | -= | *= | /= | %= | &= | ^= | |= }
    Birleşik atama işleç:

    += Ekleyin ve atama

    -= çıkarmak ve atama

    * = Çarpın ve atama

    / Bölme ve atama =

    % mod ve atama

    &= Bitwise VE ve atama

    ^ Bit seviyesinde XOR = ve atama

    | = Bit düzey VEYA ve atama

  • udt_column_name
    Kullanıcı tanımlı tür sütununda belirtilir.

  • property_name | field_name
    Ortak özellik veya kullanıcı tanımlı bir türün ortak veri üyesi belirtilir.

  • method_name**(**argument [ ,... n] )
    İş nonstatic ortak mutator yöntemudt_column_namealır, bir veya daha fazla bağımsız değişken.

  • .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.Ifexpressionolarak ayarlanırsa, NULL@Lengthdikkate alınmaz ve değercolumn_namekesilir belirtilen en@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.If@Offsetnull, güncelleştirme işlemi eklerexpressionVarolan sonundacolumn_namedeğeri ve@Lengthgöz ardı edilir.@ Kaydırma uzunluğundan büyükse,column_namedeğeri,Database Enginesayı bir hata.If@OffsetAyrıca@Lengthsonuna kadar temel değeri aşan sütun, silme işlemini en son karakter değeri. ortayaIf@Offsetve LEN(expression) boyutu bildirilen temel daha büyük, bir hata ortaya çıkar.

    @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.If@Lengthnull, güncelleştirme işlemi, tüm verileri kaldırır@Offsetsonuna kadarcolumn_namedeğer.

    Daha fazla bilgi için bkz: Notlar.

  • **@**variable
    İş bildirilen bir değişken tarafından döndürülen değere ayarlayınexpression.

    küme**@variable = column= expressionAyarlar değişkene aynı sütun.Bu küme alanından farklıdır@**variablecolumn, = column= expressiondeğişken sütun. pre-update değerine ayarlar

  • <OUTPUT_Clause>
    Veri veya UPDATE işleminin parçası olarak temel alan bir ifade döndürür güncelleştirildi.Çıktı yan tümce uzak tablo veya görünümlerin hedefleyen bir DML deyimleri desteklenmez.Daha fazla bilgi için bkz:OUTPUT yan tümce (Transact-SQL).

  • > < Table_source
    Bir tablo, görünüm veya türetilen tablonun kaynak güncelleştirme işlemi için ölçüt sağlamak için kullanıldığını belirtir.Daha fazla bilgi için bkz:Transact-SQL ().

    Güncelleştirilen nesnenin nesne from aynı olup olmadığını yan tümce tek from nesnesine başvuru yoktur yan tümce, bir nesnenin diğer ad olabilir veya belirtilmemiş olabilir.FROM yan tümce, bir ve yalnızca bir tane daha fazla saat güncelleştirilen nesnenin görünür, nesneye bir tablo diğer ad ad adı belirtmeniz gerekir değil.Tüm diğer başvurular from nesneye yan tümce nesnenin diğer adını eklemeniz gerekir.

    Bir görünümü bir INSTEAD OF UPDATE tetikleyicisi ile bir UPDATE FROM yan tümce. bir hedefi olamaz

  • BURADA
    Güncelleştirilen satır sınırı koşulları belirtir.WHERE, hangi formu temel alan güncelleştirmesi iki biçimi vardır yan tümce kullanılır:

    • Aranan güncelleştirmeler silinecek satırları alabilmek için bir arama koşulu belirtin.

    • Konumlandırılmış güncelleştirmeler kullanan CURRENT OF yan tümce imleç belirtmek için.Güncelleştirme işlemi geçerli konumuna oluşur imleç.

  • <search_condition>
    Güncelleştirilecek satırları yerine getirilmesi için koşul belirtir.Arama koşulu bir birleşimi temel aldığı koşul da olabilir.Bir arama koşulunda yer koşullarına sayısına bir sınır yoktur.Yüklemler, arama koşulları hakkında daha fazla bilgi için bkz:Arama koşulu (Transact-SQL).

  • GEÇERLİ OLAN
    Güncelleştirmeyi, belirtilen geçerli konumuna gerçekleştirildiğini belirtir imleç.

  • Genel
    Belirtir cursor_name bir genel imlecine başvuruyor.

  • cursor_name
    Getirme alınıp yapılması gereken açık imleç adıdır.Hem genel hem de bir yerel imleç adıcursor_namevarsa, bu bağımsız değişkeni başvurduğu genel imleç ise genel belirtilen; aksi durumda, başvuran yerel imleç.İmleci, güncelleştirmelere izin vermek gerekir.

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

  • OPTION ( <query_hint> [ ,... n ] )
    En iyi hale getirme ipuçları biçimini özelleştirmek için kullanıldığını belirtirDatabase Engineişler deyim.Daha fazla bilgi için bkz:Sorgu ipuçları (Transact-SQL).

Remarks

The UPDATE deyim tam olarak kaydedilir; ancak, kısmi kullanarak büyük değer veri türleri için güncelleştirmeleri**.**Yan tümcesinde en az oturum WRITE.Daha fazla bilgi için güncelleştirme büyük değer verileri aşağıdaki "türler" konusuna bakın.

UPDATE deyimleri yalnızca değiştirilen tablo bir tablo değişkeni olması durumunda kullanıcı tanımlı işlevler gövdesinde izin verilir.

null bir satır için bir güncelleştirme bir kısıtlama veya kuralı ihlal eden, ihlal eden bir uyumlu veri türü ayarı, sütun veya yeni bir değer olan, deyim iptal edildi, bir hata döndürülür ve kayıt güncelleştirilir.

Bir UPDATE ifade ifade değerlendirme sırasında (taşma, sıfır veya bir etki alanı hata bölme) aritmetik hatayla karşılaştığında, güncelleştirme yapılır.Diğer toplu iş iş iş yürütülmez ve bir hata iletisi döndürülür.

Kümelenmiş dizin ve satır 8,060 baytı aşan bir sütun veya sütunları bir kümelenmiş dizini katılan bir güncelleştirmeye neden olursa güncelleştirme başarısız ve bir hata iletisi döndürülür.

Tümcharvencharsütunları sağ-göre tanımlanmış uzunluğu.

küme ROWCOUNT seçeneğinin ayarını uzak tablo ve yerel ve uzak bölümlenmiş görünümler UPDATE deyimleri için göz ardı edilir.

, ANSI_PADDING olan küme için OFF, tüm izleyen boşlukları eklenen veri çıkarılırvarcharvenvarcharsütun yalnızca boşluk. içeren dizeleri hariçBu dizelerin boş bir dize olarak kısaltılır.ANSI_PADDING ise küme ON, sondaki boşluk eklenir.Otomatik olarak Microsoft Office 2010 Suite SQL Server ODBC sürücüsü ve OLE DB sağlayıcı for SQL Server ANSI_PADDING ON her bağlantı için küme.Bu işlem, ODBC veri kaynağı veya bağlantı özniteliklerini ayarlama veya özellikleri de yapılandırılabilir.Daha fazla bilgi için bkz:küme ANSI_PADDING (Transact-SQL).

WHERE CURRENT OF yan tümce kullanarak konumlandırılmış güncelleştirme imlecin bulunduğu konumda geçerli tek satır güncelleştirir.Bu olabilir WHERE kullanan aranan bir güncelleştirme daha doğru<search_condition>yan tümce güncelleştirilecek satırları alabilmek için.Arama koşulu tek bir satırı benzersiz şekilde tanımlamaz, aranan bir güncelleştirme birden çok satır değiştirir.

UPDATE ile FROM kullanarak yan tümce

Deyim gibi UPDATE deyiminin belirli değilse, güncelleştirilen her sütun örneği için yalnızca bir değer biçimde kullanılabilir belirtilmemiş bir FROM yan tümce içeriyorsa UPDATE deyiminin sonuçlarını tanımsızdır., Örneğin,UPDATEAşağıdaki komut dosyası, her iki satır deyimindeTable1, nitelikleri uygunFROMyan tümce,UPDATEdeyim; ancak bu tanımsız hangi satırdanTable1güncelleştirme satır için kullanılırTable2.

FROM ve WHERE CURRENT OF yan birleştirildiğinde, aynı sorun ortaya çıkabilir.Aşağıdaki örnekte, her iki satırTable2, nitelikleri uygunFROMyan tümce,UPDATEdeyim.Olarak tanımlanmamış hangi satırdanTable2güncelleştirme satır için kullanılacak olanTable1.

Kullanıcı tanımlı tür sütun güncelleştirme

kullanıcı tanımlı tür sütunlarındaki değerleri güncelleştirmek gerekir aşağıdaki yöntemlerden birini:

  • Bir değer sağlayan birSQL ServerSistem veri türü olarak kullanıcı tanımlı tür destekler, örtülü veya açık dönüştürme, yazın.Aşağıdaki örnek, kullanıcı tanımlı tür sütunundaki bir değeri güncelleştirmek için gösterirPoint, açıkça bir dize. dönüştürerek

    UPDATE Cities
    SET Location = CONVERT(Point, '12.3:46.2')
    WHERE Name = 'Anchorage';
    
  • yöntem çağırmak, güncelleştirme gerçekleştirmek için kullanıcı tanımlı tür bir mutator işaretlenmiş.Aşağıdaki örnek türü mutator yöntem çağırırPointadıSetXY.Bu tür örneğinin durumunu güncelleştirir.

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

    Not

    SQL Server, mutator yöntem çağrılır, bir hata verir birTransact-SQLNull değeri veya yeni bir değer üretilen tarafından mutator yöntem ise boş.

  • Kayıtlı bir özellik veya kullanıcı tanımlı tür ortak veri üyesi değerini değiştirme.İfadenin değeri sağlayan özellik türüne örtük olarak dönüştürülebilir olmalıdır.Aşağıdaki örnek özelliğinin değerini değiştirirXkullanıcı tanımlı türPoint.

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

    Aynı kullanıcı tanımlı tür sütun farklı özelliklerini değiştirmek için birden çok UPDATE deyimleri sorun veya türü mutator yöntem çağırır.

Büyük bir değer veri türleri güncelleştirme

Use the .WRITE (expression, @Offset**,**@Length) clause to perform a partial or full update of varchar(max), nvarchar(max), and varbinary(max) data types.Örneğin, kısmi bir güncelleştirme olarak birvarchar(max)sütun ve silebilir veya değiştirebilir sütunun ilk 200 karakteri ise bir tam güncelleştirme ve silme veya değiştirme tüm verileri sütun.**.**Eklemek veya yeni veri eklemek güncelleştirmeler veritabanı kurtarma modeli ise en az kaydedilir WRITE küme için yığın-günlüklenen veya basit.Varolan değerleri güncelleştirildiğinde, en az bir günlük kullanılmaz.Daha fazla bilgi için bkz:En az oturum işlemleri.

The Database Engine converts a partial update to a full update when the UPDATE statement causes either of these actions:

  • Anahtar sütun bölümlenmiş görünüm veya tabloyu değiştirir.

  • Birden fazla satır değişiklik yapar ve ayrıca nonconstant değerine benzer bir kümelenmiş dizin anahtarını güncelleştirir.

Kullanamazsınız**.**BOŞ sütunu güncelleştirmek için yazma yan tümce veya küme değeri column_nameNULL.

@Offsetve@Lengthbayt belirtilirvarbinaryvevarcharveri türleri ve karakternvarcharveri türü.İlgili uzaklık hesaplanan (DBCS) alfabe çift baytlık karakter kümesi için

En iyi performans için veri eklenmiş veya 8040 bayt katları olan öbek boyutlarda güncelleştirilmiş öneririz.

If the column modified by the **.**WRITE clause is referenced in an OUTPUT clause, the complete value of the column, either the before image in deleted.column_name or the after image in inserted.column_name, is returned to the specified column in the table variable.G aşağıdaki örneğe bakın.

Aynı işlevselliğini elde etmek için**.**Diğer karakter ya da ikili veri türleri ile WRITE, kullanmak Öğe (Transact-SQL).

Metin, ntext ve görüntü sütunlarını güncelleştirme

Değiştirerek birtext,ntext, orimagesütun UPDATE sütunu başlatır, geçerli bir metin işaretçi atar ve ayırdığı en az bir veri sayfa, sürece sütunu güncelleştirilir null.UPDATE deyim değiştirmeniz hem de küme anahtar ve bir veya daha fazla güncelleştirme sırasında birden fazla satırtext, ntext, orimagesütun bu sütun kısmi güncelleştirme yürütüldüğünde olarak tam yeni bir değer.

Değiştirmek veya büyük bloklar değiştirmek içintext,ntext, orimageverileri,WRITETEXT veya güncelleştirme yerine UPDATETEXT deyim.

Important noteImportant Note:

The ntext, text, and image data types will be removed in a future version of Microsoft SQL Server.Bu veri türleri, yeni iş geliştirme kullanmaktan kaçının ve onları kullanan uygulamalar değiştirmek planlama.Kullanımı nvarchar(max), varchar(max), and varbinary(max) yerine.Daha fazla bilgi için bkz:Büyük değer veri türleri'ni kullanma.

INSTEAD OF Tetikleyicileri UPDATE eylemler üzerinde kullanma

Ne zaman bir INSTEAD OF tetikleyicisi tanımlanmış UPDATE eylemlere karşı bir tablo, tetikleyici UPDATE deyim yerine çalışıyor.Önceki sürümleriSQL Serveryalnızca destek sonra tetikleyici tanımlı, UPDATE ve diğer veri değişikliği ifadeleri.FROM yan tümce, doğrudan veya dolaylı olarak, bir görünümü tanımlanmış bir INSTEAD OF tetikleyicisi ile başvuran bir UPDATE deyim tarif edilemez.INSTEAD OF Tetikleyicileri, hakkında daha fazla bilgi için bkz:(Transact-SQL) TRIGGER CREATE.

Ayarı değişkenleri ve sütunlar

Değişken adları UPDATE deyim s etkilenen eski ve yeni değerlerini göstermek için kullanılabilir, ancak bu kullanılmalıdır yalnızca güncelleştirme deyim tek bir kayıt etkiler., GÜNCELLEŞTİRMEYİ deyim etkiler eski ve yeni değerleri kullanmak her kayıt için birden çok kayıt,OUTPUT yan tümce.

Ortak bir tablo ifade güncelleştirme

Hedefi bir UPDATE ifade, genel bir tablo ifade (CTE) ise deyimde CTE yapılan tüm başvurular eşleşmesi gerekir.Örneğin, bir diğer ad FROM yan tümcesinde CTE atadıysanız, diğer CTE tüm diğer başvurular için kullanılmalıdır.Belirli CTE başvuruları bir CTE bir nesne kimliği olmadığı için gerekli olanSQL Servernesne ve dolaylı ilişkisi tanımak için kullanır onun diğer ad ad adı.Bu ilişki Sorgu planını birleştirmek beklenmeyen davranış ve istenmeyen sorgu sonuçlar üretebilir.Aşağıdaki örnekler, CTE güncelleştirme işlemi, hedef nesnesi, bir CTE belirterek, doğru ve yanlış yöntemlerini göstermektedir.

Here is the result set.

Kimlik değeri

------ -----

1      100

2      200

(2 satırları etkilenen)

Here is the result set.

Kimlik değeri

------ -----

1      100

2      100

(2 satırları etkilenen)

İzinler

UPDATE izinleri hedef gerekli tablo.SELECT izni gereklidir de UPDATE deyim içeren bir WHERE yan tümce ya da güncelleştirilmiş tabloexpressionküme yan tümce kullandığı sütun tablo.

Üyeleri için varsayılan izinleri UPDATEsysadminsabit sunucu rolü,db_ownervedb_datawritersabit veritabanı rolleri ve tablo sahibi.Üyeleri,sysadmin,db_owner, vedb_securityadminroller ve tablo sahibi izinleri diğer kullanıcılara. aktarmak

Örnekler

C.Basit bir UPDATE deyim kullanarak

Aşağıdaki örneklerde gösterildiği bir WHERE yan tümce, tüm satırları etkilenebilir nasıl satırı belirtmek için kullanılan veya güncelleştirmek için satırlar.

Bu örnek değerler güncelleştirmeleriBonus,CommissionPct, veSalesQuotatüm satırları sütunlaraSalesPersonTablo.

Hesaplanan değerleri bir UPDATE deyim de kullanabilirsiniz.Aşağıdaki örnek, değeri ikiye katlanır ListPrice sütun için tüm satırları Product TABLO.

b.Güncelleştirme kullanarak deyim WHERE yan tümce ile

Aşağıdaki örnek, WHERE yan tümce, hangi satırların güncelleştirme belirlemek için kullanır.Örneğin,Adventure Works Cyclesiki renkte bisiklet modeli Road-250 satıyor: kırmızı ve siyah. Şirket, metalik kırmızı bu model için kırmızı rengini değiştirmek vermiştir.Aşağıdaki ifadeyi satır güncelleştirirProduction.ProductTablo için tüm kırmızı Road-250 ürünleri.

c.Başka bir tablodaki bilgileri Güncelleştir deyim kullanarak

Aşağıdaki örnek değiştirir SalesYTD sütunda SalesPerson Tablo içinde kaydedilen en son satış yansıtacak şekilde SalesOrderHeader TABLO.

Önceki örnekte, belirli bir tarih ve bu güncelleştirmeleri belirli bir satışçı geçerli için yalnızca bir satış kaydedilir varsayar.Aynı günde birden fazla satış belirli bir satış temsilcisi için kaydedilebilir, gösterilen örnek düzgün çalışmaz.Örnek çalışır ancak her hata olmadanSalesYTD değer gerçekte ne kadar satış oluştu o gün. ne olursa olsun, tek bir satış ile güncelleştirilirBu, çünkü tek bir UPDATE deyim, hiçbir zaman aynı satırda iki kez güncelleştirir.

Hangi birden fazla satış için belirli bir satış temsilcisi, aynı gün, ortaya çıkabilecek her satış elemanı tüm satış gerekir toplanan birlikte içinde durumdaUPDATEdeyim, aþaðýdaki örnekte gösterildiði gibi:

d.UPDATE TOP yan tümcesinde kullanma

Aşağıdaki örnek güncelleştirmeleriVacationHourssütun 10 rasgele satırlar için yüzde 25 olarakEmployeeTablo.

e.ÇIKTI ile UPDATE kullanarak yan tümce

Aşağıdaki örnek güncelleştirmelerin VacationHours sütun, Employee 25 oranında ilk 10 satırı tablosudur. The OUTPUT clause returns the value of VacationHours that exists before applying the UPDATE statement in the DELETED.VacationHours column and the updated value in the INSERTED.VacationHours column to the @MyTableVar table variable.

Iki SELECT ifade değerleri döndüren izleyin. @MyTableVar güncelleştirme işlemi sonuçlarını Employee TABLO. sonuçlar NotINSERTED.ModifiedDatesütun değerleri farklıModifiedDatesütunundaEmployee Tablo.Bu, çünküAFTER UPDATETetik değerini güncelleştirirModifiedDategeçerli tarih olarak tanımlananEmployeeTablo.Ancak, sütunları döndürülen OUTPUT önce Tetikleyicileri harekete verileri yansıtır. Çıktı kullanarak daha fazla örnek için yan tümce, bkz:OUTPUT yan tümce (Transact-SQL).

f.UPDATE ile common_table_expression ile kullanarak yan tümce

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.Yalnızca ortak tablo ifade tarafından döndürülen satırları düzeltilir.Yinelenen genel tablo ifadeler hakkında daha fazla bilgi için bkz:Kullanarak ortak tablo deyimleri özyinelemeli sorgular.

g.UPDATE bir nvarchar(max) veri değiştirmek için pucu yan tümcesinde kullanarak sütun

Aşağıdaki örnek**.**DocumentSummary, Bir kısmi değeri güncelleştirmek için yazma yan nvarchar(max)sütun, Production.Document Tablo.Sözcükcomponentssözcüğü ile değiştirilirfeaturesdeğiştirme sözcük, sözcük varolan verileri ve karakter değiştirildi (uzunluk) olarak değiştirilecek başlangıç konumu (ofset) belirterek.The example also uses the OUTPUT clause to return the before and after images of the DocumentSummary column to the @MyTableVartable variable.

h.UPDATE pucu ile bir nvarchar(max) veri eklemek ve kullanmak sütun

Aşağıdaki örnekleri eklemek ve verileri birnvarchar(max)sütun olan bir değere küme null.İçin**.**yan tümce, null değeri değiştirmek için kullanılamaz WRITE sütun, sütun ilk giriş geçici. ile Bu verileri kullanarak doğru verileri daha sonra yerine.WRITEyan tümce.Diğer örnekler sütun değeri için veri sonuna, (kesme) veri sütunu Kaldır ve son olarak, verinin bir kısmını sütundan kaldırın.The SELECT statements display the data modification generated by each UPDATE statement.

İ.UPDATE ile OPENROWSET varbinary(max) sütunda değişiklik yapmak için kullanma.

Aşağıdaki örnekte depolanmış varolan bir görüntü yerine birvarbinary(max)sütun içeren yeni bir resim.The OPENROWSET function is used with the BULK option to load the image into the column.Bu örnek, bir dosya adlı varsayarTires.jpgBelirtilen dosya yol bulunmaktadır

j.UPDATE kullanarak bileşik bir işleç ve SELECT @ local_variable

Aşağıdaki örnek değişkeni kullanır@NewPriceGeçerli Fiyat alma ve it. 10 ekleyerek tüm kırmızı bisiklet fiyatını artırmak için

k.UPDATE bir saklı yordam kullanarak

Aşağıdaki örnek, saklı yordam içinde bir UPDATE deyim kullanır.Yordamı, bir girdi parametresini alır@NewHours.sütun güncelleştirmek için UPDATE deyiminde kullanılan parametre değeriVacationHourstablodaHumanResources.Employee.The durum ifadesini koşullu olarak belirlemek için küme değer küme yan tümcesinde kullanılanVacationHours., Çalışana ödeme saat ( SalariedFlag= 0),VacationHourssaat ve içindeki değer sayısı için ayarlanmıştır@NewHoursaksi halde,VacationHoursiçindeki değere ayarlandı@NewHours.

Değişiklik Geçmişi

Güncelleştirilmiş içerik

'Güncelleştirme ortak bir tablo ifade' bölümü eklendi.

Eklenen örnek, "Using UPDATE saklı bir yordam."