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
SSC-EWI-0035: Check statement not supported.
SSC-EWI-0040: Statement Not Supported.
SSC-FDM-TS0020: Default constraint was commented out and may have been added to a table definition.
Last updated
