我的“项目”表中有一个“StoreNumber”列,我想将其更改为“NOT NULL”。我最近清理了所有旧数据,以便没有空条目。但是,当我执行以下语句时,由于对各种视图、索引和统计信息的多重依赖,它失败了
ALTER TABLE [Project]
ALTER COLUMN StoreNumber VARCHAR(9) NOT NULL
GO
删除所有这些视图/索引/统计信息然后运行 alter 语句,然后再次重新创建所有视图/索引/统计信息的最快方法是什么?我知道我可以复制所有的 drop 并一个一个地创建语句,但我更愿意在单个查询中生成脚本。
附带说明一下,如果我使列更具限制性,为什么 SQL Server 会关心?数据不包含空值,我不会更改数据类型或列的大小。这种类型的更改将如何破坏依赖视图、索引或统计信息?我确信有我没有看到的合理推理,但我想要一个例子。