patternsqlModerate
ALTER DATABASE statement not allowed within multi-statement transaction
Viewed 0 times
allowedmultistatementdatabasewithinaltertransactionnot
Problem
I've downloaded the AdventureWorks based In-memory sample from here, and followed all the steps described in the accompanying doc. However, when I try to run the script in SQL Server Management Studio, I get the error message:
ALTER DATABASE statement not allowed within multi-statement transaction
The error points to line 9, which is:
Since this is (more or less) official Microsoft documentation, I'm assuming it's something I'm doing wrong, but I can't figure out what it is.
ALTER DATABASE statement not allowed within multi-statement transaction
The error points to line 9, which is:
IF NOT EXISTS (SELECT * FROM sys.data_spaces WHERE type='FX')
ALTER DATABASE CURRENT ADD FILEGROUP [AdventureWorks2012_mod]
CONTAINS MEMORY_OPTIMIZED_DATA
GOSince this is (more or less) official Microsoft documentation, I'm assuming it's something I'm doing wrong, but I can't figure out what it is.
Solution
No, you're not doing anything wrong. I got the same thing. I solved it by breaking the sample up into multiple scripts and running each section of the script sequentially, in its own query window, instead of as one big script. This worked in my case because I'm always running these samples in an isolated VM (not on a production server!) and transaction handling is unnecessary since I'm the only one here.
Looking at the script again today more closely, there is no transaction handling defined explicitly, but perhaps you pasted the script into a query window that already had an active transaction, or created a new query window that automatically added
I also pointed out a couple of other potential gotchas in this blog post.
Looking at the script again today more closely, there is no transaction handling defined explicitly, but perhaps you pasted the script into a query window that already had an active transaction, or created a new query window that automatically added
BEGIN TRANSACTION; / COMMIT TRANSACTION; statements.I also pointed out a couple of other potential gotchas in this blog post.
Context
StackExchange Database Administrators Q#56527, answer score: 14
Revisions (0)
No revisions yet.