küme ANSI_PADDING (Transact-SQL)

Denetimleri şekilde sütunun değerleri, sütun tanımlı boyutunu daha kısa depolar ve biçimi sütunu sondaki boşlukları değerleri depolarchar,varchar,binary, vevarbinaryveri.

Important noteImportant Note:

In a future version of Microsoft SQL Server ANSI_PADDING will always be ON and any applications that explicitly set the option to OFF will produce an error.Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.

Topic link iconTransact-SQL sözdizimi kuralları

SET ANSI_PADDING { ON | OFF }

Remarks

Sütun tanımlı olanchar,varchar,binary, vevarbinaryveri türlerine sahip tanımlı bir boyutu.

Bu ayar yalnızca yeni sütunlar tanımını etkiler.Sonra bir sütun oluşturulur,SQL Serversütunu oluşturduğunuzda ayarları temel alan değerleri depolar.Bu ayarı daha sonra değişiklik varolan sütun etkilenmez.

Not

ANSI_PADDING her zaman olmasını öneririz küme açık.

Aşağıdaki tablo, küme ANSI_PADDING ayar değerleri sütunlar ile eklendiğinde, etkisini gösterirchar,varchar,binary, vevarbinaryveri türü.

Ayar

char(n) NOT NULL veya binary(n) NOT NULL

char(n) NULL veya boş binary(n)

varchar(n) veya varbinary(n)

AÇIK

Paneli özgün değeri (boşluklar için izleyen ile charsütunlar ve sondaki sıfırlar için binarysütunları) uzunluğu sütun.

İçin ayný kurallara uyarchar(n)orbinary(n)NOT NULL, küme ANSI_PADDING olduğu açık.

Sondaki boş karakter değerleri eklendiğindevarcharsütun değil kesildikten.Arkaya sıfırlar eklendiğinde ikili değervarbinarysütun değil kesildikten.Uzunluğu, değerlerin boşluklarla sütun.

Kapalı

Paneli özgün değeri (boşluklar için izleyen ile charsütunlar ve sondaki sıfırlar için binarysütunları) uzunluğu sütun.

İçin ayný kurallara uyarvarcharorvarbinaryküme ANSI_PADDING olan OFF.

Eklenen karakter değeri boşlukları izleyen birvarcharsütun kesildikten.Arkaya sıfır ikili değerleri eklenen birvarbinarysütun kesildikten.

Not

Zaman edilirken,char, boşluklar sütun göre vebinarysütunlara göre sıfırlar.Zaman kesildikten,charsütun kesildikten, sonunda boşluk var vebinarykesildikten ardarda sıfırları olan sütun.

küme ANSI_PADDING oluştururken veya hesaplanmış sütun ve dizin oluşturulmuş görünümler, dizinler değiştirme açık olması gerekir.Dizin oluşturulmuş görünümler ve hesaplanan sütunlar üzerinde dizinler gerekli küme seçenek ayarları hakkında daha fazla bilgi için bkz "konuları, size kullanım küme ifadeleri"küme (Transact-SQL).

küme ANSI_PADDING varsayılan açık'tır.The SQL Server Native Client ODBC driver and SQL Server Native Client OLE DB Provider for SQL Server automatically set ANSI_PADDING to ON when connecting.Bu, ODBC veri kaynaklarına bağlantı özniteliklerini ODBC veya OLE DB bağlantı özellikleri de yapılandırılabilir küme bağlanmadan önce uygulama.küme ANSI_PADDING için kapalı DB-Library uygulamalardan gelen bağlantılar için varsayılandır.

küme the ANSI_PADDING ayarını etkilemeznchar,nvarchar,ntext,text,image, büyük bir değer.Bunlar her zaman küme ANSI_PADDING ON davranışını görüntüler.Yani, sondaki boşluk ve sıfır olmayan atılır.

küme ANSI_PADDING küme ANSI_DEFAULTS ON olduğunda etkindir.

küme ANSI_PADDING ayarını ayarlayın çalıştırmak veya saat ve ayrıştırma saat değil.

, ANSI_PADDING küme OFF, MIN, MAK veya TOP karakter sütunları içeren bir sorgu, daha yavaş olabilirSQL Server 2000.

İzinler

Genel rol üyeliği gerekir.

Örnekler

Aşağıdaki örnek, ayar aşağıdaki veri türlerinden her birinin nasıl etkilediğini gösterir.

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

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