Skip to content

Nontransactional TSQL

sdrapkin edited this page Jan 5, 2018 · 1 revision

A few T-SQL statements are not allowed by the SQL engine to run within a transaction:

T-SQL
CREATE DATABASE
DROP DATABASE
ALTER DATABASE
BACKUP
RESTORE
RECONFIGURE

The above statements can be TinyORM-run via a separate connection string with Enlist=False.

var db = DbContext.Create(connString);
var db_util = DbContext.Create(connString_util);

await db_util.QueryAsync("CREATE DATABASE Foo;");
var query = await db.QueryAsync("USE [Foo]; SELECT Name=DB_NAME();");

Console.WriteLine(query.First().Name); // Prints "Foo"

static string connString = "Data Source=.\\SQL2016; Initial Catalog=tempdb; Integrated Security=True;";
static string connString_util = connString + "Enlist=False;";
Clone this wiki locally