我了解这些设置的作用以及它们为何如此重要。但是,我有几个问题:
如果我在CREATE / ALTER之前运行一次:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
下次再进行另一次创建/更改时,是否有必要再次运行它?
基本上,这些SET命令是否会在批次/连接之间进行更改?
答案 0 :(得分:1)
创建对象时指定的任何SET
选项(表或其他)永久地绑定到该对象,并且这些设置很重要。例如,要将过滤的索引添加到表中,必须使用一组正确指定的SET
选项创建它。您可以通过sys.sql_modules
查看所有这些选项。
但是,一旦创建了对象,就无法更改这些选项(或者至少不能通过我知道的任何方式更改),因此向SET
脚本添加ALTER TABLE
选项将适用于任何您要运行的SQL(像往常一样),但不会更新与该表关联的SET
选项。