Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Kom ihåg följande när du använder XML-uppdateringsgram:
Om du använder ett updategram för en insert-operation med endast ett par <före-> och <efter-block> , <kan före-blocket> utelämnas. Omvänt, vid en borttagningsoperation kan blocket< efter> tas bort.
Om du använder ett updategram med flera <före-> och <efter-block> i synkroniseringstaggen<> måste både <före-> och <efter-block> anges för att bildas <före> och <efter> par.
Uppdateringarna i ett updategram appliceras på XML-vyn som tillhandahålls av XML-schemat. Därför måste du antingen ange schemafilnamnet i updategrammet för att standardmappningen ska lyckas, eller om filnamnet inte finns, måste element- och attributnamnen matcha tabell- och kolumnnamnen i databasen.
SQLXML 4.0 kräver att alla kolumnvärden i ett updategram explicit mappas i schemat (antingen XDR eller XSD) som tillhandahålls för att sammanställa XML-vyn för dess barnelement. Detta beteende skiljer sig från tidigare versioner av SQLXML, som tillät ett värde för en kolumn som inte var mappad i schemat om det antyddes som en del av den främmande nyckeln i en sql:relationship-annotation . (Observera att denna ändring inte påverkar spridningen av primärnyckelvärden till barnelement, vilket fortfarande sker för SQLXML 4.0 om inget värde uttryckligen anges för barnelementet.
Om du använder ett updategram för att ändra data i en binär kolumn (såsom SQL Server-bilddatatypen ) måste du tillhandahålla ett mappningsschema där SQL Server-datatypen (till exempel sql:datatype="image") och XML-datatypen (till exempel dt:type="binhex" eller dt:type="binbase64) måste specificeras. Data för den binära kolumnen måste specificeras i updategrammet; SQL:URL-kodningsannotationen som anges i mappningsschemat ignoreras av UpdateGram.
När du skriver ett XSD-schema, om värdet du anger för sql:relation eller sql:field-annotationen innehåller ett specialtecken, som ett mellanslag (till exempel i tabellen "Order Details"), måste detta värde vara inneslutet inom parentes (till exempel "[Order Details]").
När man använder updategrams stöds inte kedjerelationer. Till exempel, om tabellerna A och C är relaterade genom en kedjerelation som använder tabell B, kommer följande fel att uppstå när man försöker köra och köra updategrammet:
There is an inconsistency in the schema provided.Även om både schema och updategram annars är korrekta och giltigt bildade, uppstår detta fel om en kedjerelation finns.
Updategrams tillåter inte att bildtypdata skickas som parametrar under uppdateringar.
Binära stora objekttyper (BLOB) som text/ntext och bilder bör inte användas i <före-blocket> när man arbetar med updategram, eftersom detta inkluderar dem för samtidighetskontroll. Detta kan orsaka problem med SQL Server på grund av begränsningar i jämförelse för BLOB-typer. Till exempel används nyckelordet LIKE i WHERE-klausulen för att jämföra kolumner i textdatatypen ; dock kommer jämförelser att misslyckas i fallet med BLOB-typer där datastorleken är större än 8K.
Specialtecken i ntext-data kan orsaka problem med SQLXML 4.0 på grund av begränsningar i jämförelse för BLOB-typer. Till exempel kommer användningen av "[Serializable]" i <före-blocket> i en updategrams när den används vid samtidighetskontroll av en kolumn av ntext-typ att misslyckas med följande SQLOLEDB-felbeskrivning:
Empty update, no updatable rows found Transaction aborted