SET ANSI_PADDING { ON | OFF }
針對小於定義的列大小的值以及 char、varchar、binary 和 varbinary 資料中有尾隨空格的值,此語句可以控制儲存此類值的方式。
此設定隻影響新列的定義。建立列後,SQL Server 2005 將根據建立列時的設定儲存這些值。現有的列不受以後對該設定更改的影響。
下表顯示在將值插入含有 char、varchar、binary 和 varbinary 資料類型的列時,SET ANSI_PADDING
設定的效果。
| 設定 |
char(n) NOT NULL 或 binary(n) NOT NULL |
char(n) NOT NULL 或 binary(n) NULL |
varchar(n) 或 varbinary(n) |
ON |
填充原始值(char 列具有尾隨空格的值,binary 列具有尾隨零的值),使達到列的長度。 |
如果 SET ANSI_PADDING 為 ON,則遵從與 char(n) 或 binary(n) NOT NULL 相同的規則。 |
不剪裁插入 varchar 列中的字元值的尾隨空格。不剪裁插入 varbinary 列中的二進位值的尾隨零。不將值填充到列的長度。 |
OFF |
填充原始值(char 列具有尾隨空格的值,binary 列具有尾隨零的值),使達到列的長度。 |
如果 SET ANSI_PADDING 為 OFF,則遵從與 varchar 或 varbinary 相同的規則。 |
剪裁插入 varchar 列中的字元值的尾隨空格。剪裁插入 varbinary 列中的二進位值的尾隨零。 |
| 注意: |
| 進行填充時,char 列用空格填充,binary 列用零填充。進行剪裁時,char 列的尾隨空格被剪裁,binary 列的尾隨零被剪裁。 |
如果是對計算資料行或索引檢視表建立或更改索引,則 SET ANSI_PADDING 必須為 ON。有關計算資料行的索引檢視表和索引必需的 SET
選項設定的詳細資料,請參閱 SET
(Transact-SQL) 中的“使用 SET 語句時的注意事項”。
進行串連時,SQL Server 的 SQL Native Client ODBC 驅動程式和 SQL Native Client
OLE DB 提供者會自動將 ANSI_PADDING 設定為 ON。這可以在 ODBC 資料來源、ODBC 串連特性或 OLE DB
串連屬性(它們在串連前在應用程式中設定)中進行配置。對於來自 DB-Library 應用程式的串連,SET ANSI_NULL_DFLT_ON 的預設設定為
OFF。
SET ANSI_PADDING 設定不影響 nchar、nvarchar、ntext、text、image 和大型值。它們始終顯示
SET ANSI_PADDING ON 行為。這表示不剪裁尾隨空格和尾隨零。
這些類型不受 SET ANSI_PADDING 設定的影響。
如果 SET ANSI_DEFAULTS 為 ON,則啟用 SET ANSI_PADDING。
SET ANSI_PADDING 的設定是在執行或運行時設定的,而不是在分析時設定的。