none
Aus der MSDN-Hotline: Transaktionen und CREATE RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen,
    heute wurde uns bei der MSDN Hotline unter anderem folgende Frage gestellt:

    Ich habe Probleme mit meiner SQL-Verbindung (SqlConnection). Ich verwende die Befehle CREATE DATABASE und CREATE TABLE, aber der SQLServer meldet einen Fehler. Was kann ich tun?

    Unsere Antwort bzw. unser Lösungsvorschlag darauf war:

    Sie erhalten wahrscheinlich den Fehler "CREATE DATABASE statement not allowed within multi-statement transaction". Das ist so gewollt - bestimmte Statements sind innerhalb von Transaktionen verboten. Das hat verschiedene Gründe, beispielsweise technische Machbarkeit oder Performanz. In diesem Fall ist das aber unproblematisch, weil im Fehlerfall statt mit Rollback einfach DROP DATABASE die Änderungen rückgängig gemacht werden. (Sollte das ebenfalls fehlschlagen, ist mit automatisierten Methoden ohnehin nicht mehr zu reagieren.)
    CREATE TABLE kann mit Transaktionen verwendet werden, allerdings sollten Schema-Befehle immer sparsam verwendet werden. Wenn Ihre Anwendung viele Schema-Befehle (CREATE, DROP, ALTER) gleichzeitig ausführt, sollten Sie wahrscheinlich Ihr Datenbank-Layout überdenken. DDL-Befehle verursachen Locks in den Systemtabellen und können auf manchen Systemen die Performanz erheblich verringern. Ein gutes Datenbank-Layout wird nur einmal (bei der Installation) festgelegt und ausschließlich bei Migration oder Modernisierung verändert.

    Wir hoffen, vielen Besuchern der MSDN Foren durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.

    Viele Grüße,
    Jonathan Best
    MSDN Hotline für MSDN Online Deutschland

    Disclaimer:
    Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
    Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline: http://www.msdn-online.de/Hotline
    MSDN Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!

    Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu Markenzeichen Informationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN Hotline.

    Dienstag, 17. August 2010 16:12