Update (2016-04-04): This article has been updated for Azure SDK 2.8 and SQL Server Developer Edition.
While developing for Windows Azure, I recently got lots of
StorageExceptions reading “(500) Internal Server Error.”. This usually means that the SQL database that holds the table storage data is full. (SQL Server Express 2008 and sooner have a 4 GB limit; SQL Server Express 2012 and later have a 10 GB limit.)
Some time ago, Microsoft released its SQL Server Developer Edition for free. This edition doesn’t have a database size limit.
Here is how to use this SQL Server (or any SQL server instance) as storage for the table storage emulator:
Microsoft Azure Storage command line from the start menu.
cd "Storage Emulator"
(Re-)initialize the storage emulator (for the fully command-line reference see here):
- For the default SQL instance:
AzureStorageEmulator.exe init -server .
For a named SQL instance:
AzureStorageEmulator.exe init -sqlinstance "MSSQLSERVER"
Note: If you use the “named SQL instance” option from above but the instance is actually the default instance, you will get this error:
Error: User-specified instance not found. Please correct this and re-run initialization.
Default instance or named instance ∞
You can run multi SQL Server instances on the same computer. Each instance has a name (e.g.
SQLEXPRESS) and one of the instances will be the default instance. Depending on this, you need either to use option “default SQL instance” or “named SQL instance” above.
Unfortunately, I haven’t found a simple way to figure which instance is the default instance.
The one solution I found is to use Microsoft SQL Server Management Studio and try to connect to
.\MSSQLSERVER). If you can’t connect, than this instance is (most likely) the default instance.
How to get the name of the SQL instance ∞
The default SQL instance names are as follows:
|SQL Server Express
You can list all instance names with the Sql Server Configuration Manager that should come with your SQL server installation.
It’ll give you something like this: