У меня есть подобный вопрос тому, как проверить, находитесь ли Вы в транзакции. Вместо проверки, как я позволяю вложенные транзакции?
Я использую Базу данных Microsoft SQL Server с ADO.NET. Я видел, что примеры используют T-SQL и примеры, которые стартовое использование транзакций начинает и имена транзакции использования. При вызове соединения. BeginTransaction, я вызываю другую функцию в том же соединении, и это называет BeginTransaction снова, который дает мне исключение:
SqlConnection does not support parallel transactions.
Кажется, что много вариантов Microsoft позволяют это, но я не могу выяснить, как сделать это с моим .mdf файлом.
Как я позволяю вложенные транзакции с Базой данных Microsoft SQL Server с помощью C# и ADO.NET?
SQL Server в целом не поддерживает вложенные транзакции. В T-SQL вы можете выполнить BEGIN TRAN
внутри более раннего BEGIN TRAN
, но это просто для удобства. Учитывается только внешняя транзакция. Клиент .NET для SQL Server ( SqlConnection
) даже не позволяет вам сделать это и выдает это исключение при попытке.