TABLE CONSTRAINT
Description
Specifies the properties of a PRIMARY KEY, FOREIGN KEY, UNIQUE, or CHECK constraint that is part of a new column definition added to a table by using ALTER TABLE. (https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-column-constraint-transact-sql)
Translation for column constraints is relatively straightforward. There are several parts of the syntax that are not required or not supported in Snowflake.
These parts include:
CLUSTERED | NONCLUSTERED
WITH FILLFACTOR = fillfactor
WITH ( index_option [, ...n ] )
ON { partition_scheme_name ( partition_column_name ) | filegroup | "default" }
NOT FOR REPLICATION
CHECK [ NOT FOR REPLICATION ]
Syntax in SQL Server
Syntax in Snowflake
Sample Source Patterns
Multiple ALTER TABLE instances
SQL Server
Snowflake
DEFAULT within constraints
SQL Server
Snowflake
Known Issues
1. DEFAULT is only supported within CREATE TABLE
and ALTER TABLE ... ADD COLUMN
SQL Server supports defining a DEFAULT
property within a constraint, while Snowflake only allows that when adding the column via CREATE TABLE
or ALTER TABLE ... ADD COLUMN
. DEFAULT
properties within the ADD CONSTRAINT
syntax are not supported and will be translated to ALTER TABLE ALTER COLUMN.
Related EWIs
MSCEWI1088: Expressions like function calls, variables, or named constants are not allowed on default option in Snowflake
MSCEWI1042: Non-relevant syntax
MSCEWI4058: One or more of the table element parts are not supported in snowflake.
Last updated