Take docker image mcr.microsoft.com/mssql/server:2022-latest
for example.
CREATE TABLE unique_struct (
name nvarchar(30),
CONSTRAINT uni_unique_struct_name UNIQUE (name)
);
step 1:
ALTER TABLE unique_struct ALTER COLUMN name nvarchar(20);
According to https://stackoverflow.com/a/19461205/14562993, it should fail, because The object 'uni_unique_struct_name' is dependent on column 'name'
But try step 2:
ALTER TABLE unique_struct ALTER COLUMN name nvarchar(40);
It succeeded.
After my tests
- new size >= current size: alter column succeeded.
- new size < current size: alter column failed.
Is this a bug in SQL Server?