Según BOL :
Para crear una tabla con una columna calculada persistente, se deben habilitar las siguientes configuraciones de conexión:
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET NUMERIC_ROUNDABORT ON
SET QUOTED_IDENTIFIER ON
Estos valores se establecen en el nivel de la base de datos y se pueden ver usando:
SELECT
is_ansi_nulls_on,
is_ansi_padding_on,
is_ansi_warnings_on,
is_arithabort_on,
is_concat_null_yields_null_on,
is_numeric_roundabort_on,
is_quoted_identifier_on
FROM sys.databases
Sin embargo, las opciones SET también pueden ser configuradas por la aplicación cliente conectándose a SQL Server.
Un ejemplo perfecto es SQL Server Management Studio, que tiene los valores predeterminados para SET ANSI_NULLS y SET QUOTED_IDENTIFIER ambos en ON. Esta es una de las razones por las que inicialmente no pude duplicar el error que publicaste.
De todos modos, para duplicar el error, intente esto (esto anulará la configuración predeterminada de SSMS):
SET ANSI_NULLS ON
SET ANSI_PADDING OFF
SET ANSI_WARNINGS OFF
SET ARITHABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET NUMERIC_ROUNDABORT OFF
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE T1 (
ID INT NOT NULL,
TypeVal AS ((1)) PERSISTED NOT NULL
)
Puede arreglar el caso de prueba anterior usando:
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
Recomendaría ajustar estas dos configuraciones en su secuencia de comandos antes de la creación de la tabla y los índices relacionados.