Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Endpoint de análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de dados SQL no Microsoft Fabric
Controla a maneira como a coluna armazena valores menores do que o tamanho definido da coluna e a maneira como a coluna armazena valores que têm espaços em branco à direita em dados char, varchar, binário e varbinary.
-
SET ANSI_PADDING ON- Preserva os espaços em branco à direita nos valores da cadeia de caracteres quando eles são inseridos em uma coluna. Este é um comportamento compatível com ANSI. -
SET ANSI_PADDING OFF- corta os espaços em branco à direita nos valores da cadeia de caracteres quando eles são inseridos em uma coluna. Este não é um comportamento recomendado.
Observação
SET ANSI_PADDING OFFe a ANSI_PADDING OFF opção de banco de dados, foram preteridas. No SQL Server 2017 (14.x) e versões posteriores, e o Banco de Dados SQL do Azure e a Instância ANSI_PADDING Gerenciada SQL do Azure estão sempre definidos como ON. Recursos preteridos não devem ser usados em novos aplicativos. Para obter mais informações, consulte Recursos preteridos do Mecanismo de Banco de Dados no SQL Server 2017.
Transact-SQL convenções de sintaxe
Sintaxe
Sintaxe para SQL Server, pool SQL sem servidor no Azure Synapse Analytics, Microsoft Fabric.
SET ANSI_PADDING { ON | OFF }
Sintaxe para o Azure Synapse Analytics and Analytics Platform System (PDW).
SET ANSI_PADDING ON
Observações
As colunas definidas com os tipos de dados char, varchar, binário e varbinary têm um tamanho definido.
Essa configuração afeta apenas a definição de novas colunas. Depois que a coluna é criada, o SQL Server armazena os valores com base na configuração quando a coluna foi criada. As colunas existentes não são afetadas por uma alteração posterior a essa configuração.
Observação
ANSI_PADDING deve ser sempre definido como ON.
A tabela a seguir mostra os efeitos da configuração quando os SET ANSI_PADDING valores são inseridos em colunas com os tipos de dados char, varchar, binário e varbinary.
| Configurações | char(n) NOT NULL ou binary(n) NOT NULL | char(n) NULL ou binário(n) NULL | varchar(n) ou varbinary(n) |
|---|---|---|---|
ON |
Insira o valor original (com espaços em branco à direita para colunas char e com zeros à direita para colunas binárias ) para o comprimento da coluna. | Segue as mesmas regras que para char(n) ou binário(n)NOT NULL quando SET ANSI_PADDING é ON. |
Os espaços em branco à direita nos valores de caracteres inseridos nas colunas varchar não são cortados. Os zeros à direita em valores binários inseridos em colunas varbinary não são cortados. Os valores não são acolchoados ao comprimento da coluna. |
OFF |
Insira o valor original (com espaços em branco à direita para colunas char e com zeros à direita para colunas binárias ) para o comprimento da coluna. | Segue as mesmas regras que para varchar ou varbinary quando SET ANSI_PADDING é OFF. |
Os espaços em branco à direita nos valores de caracteres inseridos em uma coluna varchar são cortados. Os zeros à direita em valores binários inseridos em uma coluna varbinary são cortados. |
Quando acolchoadas, as colunas char são acolchoadas com espaços em branco e as colunas binárias são acolchoadas com zeros. Quando cortadas, as colunas char têm os espaços em branco à direita cortados e as colunas binárias têm os zeros à direita cortados.
ANSI_PADDING deve ser ON quando você estiver criando ou alterando índices em colunas computadas ou exibições indexadas. Para obter mais informações sobre as configurações de opção SET necessárias com exibições indexadas e índices em colunas computadas, consulte Considerações ao usar as instruções SET.
O padrão para SET ANSI_PADDING é ON. O driver ODBC do SQL Server Native Client e o provedor OLE DB do SQL Server Native Client para SQL Server são definidos ANSI_PADDING automaticamente como ON ao conectar. Isso pode ser configurado em fontes de dados ODBC, em atributos de conexão ODBC ou propriedades de conexão OLE DB definidas no aplicativo antes da conexão. O padrão para SET ANSI_PADDING é OFF para conexões de DB-Library aplicativos.
A SET ANSI_PADDING configuração não afeta os tipos de dados nchar, nvarchar, ntext, text, image, varbinary(max), varchar(max) e nvarchar(max ). Eles sempre exibem o SET ANSI_PADDING ON comportamento. Isso significa que os espaços à direita e os zeros não são cortados.
Quando ANSI_DEFAULTS é ON, ANSI_PADDING está habilitado.
A configuração de é definida em tempo de execução ou execução e não em tempo de ANSI_PADDING análise.
Para exibir a configuração atual para essa configuração, execute a consulta a seguir.
DECLARE @ANSI_PADDING VARCHAR(3) = 'OFF';
IF ( (16 & @@OPTIONS) = 16 ) SET @ANSI_PADDING = 'ON';
SELECT @ANSI_PADDING AS ANSI_PADDING;
Permissões
Requer adesão à função pública de .
Exemplos
O exemplo a seguir mostra como a configuração afeta cada um desses tipos de dados.
Defina ANSI_PADDING para ON e teste.
PRINT 'Testing with ANSI_PADDING ON'
SET ANSI_PADDING ON;
GO
CREATE TABLE t1 (
charcol CHAR(16) NULL,
varcharcol VARCHAR(16) NULL,
varbinarycol VARBINARY(8)
);
GO
INSERT INTO t1 VALUES ('No blanks', 'No blanks', 0x00ee);
INSERT INTO t1 VALUES ('Trailing blank ', 'Trailing blank ', 0x00ee00);
SELECT 'CHAR' = '>' + charcol + '\<', 'VARCHAR'='>' + varcharcol + '\<',
varbinarycol
FROM t1;
GO
Agora defina ANSI_PADDING para OFF e teste.
PRINT 'Testing with ANSI_PADDING OFF';
SET ANSI_PADDING OFF;
GO
CREATE TABLE t2 (
charcol CHAR(16) NULL,
varcharcol VARCHAR(16) NULL,
varbinarycol VARBINARY(8)
);
GO
INSERT INTO t2 VALUES ('No blanks', 'No blanks', 0x00ee);
INSERT INTO t2 VALUES ('Trailing blank ', 'Trailing blank ', 0x00ee00);
SELECT 'CHAR' = '>' + charcol + '\<', 'VARCHAR'='>' + varcharcol + '<',
varbinarycol
FROM t2;
GO
DROP TABLE t1;
DROP TABLE t2;