Vardecimal storage format cannot be enabled on table '%.*ls' because database '%.*ls' is a system database. Vardecimal storage format is not available in system databases.

Error Message:
Msg 4995, Level 16, State 10, Procedure sp_tableoption, Line 129
Vardecimal storage format cannot be enabled on table ‘%.*ls’ because database ‘%.*ls’ is a system database. Vardecimal storage format is not available in system databases. Severity level:
16. Description:
This error message appears when you try to enable the vardecimal storage format on a table in a system database. Consequences:
The T-SQL statement can be parsed, but causes the error at runtime. Resolution:
Errors of the Severity Level 16 are generated by the user and can be fixed by the SQL Server user. The statement cannot be executed this way. You cannot enable the vardecimal storage format on a table in a system database. Versions:
This error message was introduced with SQL Server 2005. Example(s):
USE master;
GO
IF DB_ID (‘test’) IS NOT NULL
    DROP DATABASE test;
GO
CREATE DATABASE test;
GO
EXEC sp_db_vardecimal_storage_format ‘test’, ‘ON’ ;
GO IF OBJECT_ID (‘dbo.t’) IS NOT NULL
    DROP TABLE dbo.t;
GO CREATE TABLE dbo.t
(
    c1 decimal(19,8)
); EXEC sp_tableoption ‘dbo.t’, ‘vardecimal storage format’, 1; Remarks:
In the above example we try to enable the vardecimal storage format on a table in the test database. Because we don’t switch database context from master to test, we create the table dbo.t in master instead of test. Calling sp_tableoption to enable the vardecimal storage format raises the error then. ]]>

Leave a comment

Your email address will not be published.