set ANSI_PADDING (Transact-SQL)
Denetimleri sütun biçimini saklar değerleri sütuntanımlı boyutundan daha kısa ve içinde sütun depolar izleyen değerler yolu boşaltan char, varchar, binary, ve varbinary veri.
Önemli |
---|
İçinde gelecekteki bir sürüm Microsoft SQL Server ANSI_PADDING on her zaman olacaktır ve açıkça seçeneği off için küme bir hata. vereceğini garanti uygulamaları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. |
Sözdizimi
SET ANSI_PADDING { ON | OFF }
Açıklamalar
İle tanımlanmış sütunlar char, varchar, binary, ve varbinary veri türlerine sahip tanımlı bir boyutu.
Bu ayar yalnızca yeni sütunlar tanımını etkiler.' % S'sütun sütun oluşturulduktan sonra SQL Server sütun oluşturulduğu zaman ayarını temel alan değerlerini saklar.Bu ayarı daha sonra değişiklik varolan sütunları etkilenmez.
Not
ANSI_PADDING her zaman küme açık olmasını öneririz.
Aşağıdaki tablo değerleri içeren sütunlar eklenir set ANSI_PADDING ayarı etkilerini gösterir char, varchar, binary, ve varbinary veri türü.
Ayarı |
CHAR (n) değil null veya ikili (n) not null |
CHAR (n) null veya ikili (n) null |
varchar (n) veya varbinary (n) |
---|---|---|---|
ON |
Özgün değer paneli (için boşluklarla birlikte char sütunları ile sondaki sıfırlar için binary Sütunlar) sütunuzunluğu. |
Aynı kurallara için char(n) veya binary(n) not null olduğunda set ANSI_PADDING on. |
Eklenen karakter değerleri boşluklarla varchar sütunları kesildikten değil.Sondaki sıfırları ikili değerleri eklenen varbinary sütunları kesildikten değil.Değerlerini sütunuzunluğunu doldurulur değil. |
KAPALI |
Özgün değer paneli (için boşluklarla birlikte char sütunları ile sondaki sıfırlar için binary Sütunlar) sütunuzunluğu. |
Aynı kurallara için varchar veya varbinary zaman set ANSI_PADDING kapalı olduğundan |
Eklenen karakter değerleri boşluklarla bir varchar sütun kesildikten.Sondaki sıfırları ikili değerleri eklenen bir varbinary sütun kesildikten. |
Not
Azsa, char sütunları boş olanlar ile azsa ve binary Sütunlar azsa sıfırlar.Kesildikten sonra char sütunları sahip kesildikten, arkadaki boşluklar ve binary sütunları sahip kesildikten sıfırları.
Oluştururken veya dizinler üzerinde hesaplanan sütunlar veya dizin oluşturulmuş görünümler değiştirme set ANSI_PADDING on olması gerekir."Değerlendirmeleri yaparken, kullanım AYARLAMAK Statements" hesaplanan sütunlar üzerinde dizin oluşturulmuş görünümler ve dizinler ile gerekli set seçenek ayarları hakkında daha fazla bilgi için bkz: in set seçenekleri (Transact-SQL).
set ANSI_PADDING için varsayılan açık'tır.SQL Server Yerel istemci odbc sürücüsü ve SQL Server yerel istemci ole DB sağlayıcısı için SQL Server otomatik olarak küme ANSI_PADDING bağlanırken açık.Bu odbc veri kaynaklarında, odbc bağlantı özniteliklerini veya ole DB bağlantı özelliklerini küme bağlanmadan önce uygulamasındaki yapılandırılabilir.DByapılan bağlantılar için varsayılan set ANSI_PADDING kapalı'dır-kitaplık uygulamaları.
set ANSI_PADDING ayarı etkilemez nchar, nvarchar, ntext, text, imageve büyük değer.Bunlar her zaman set ANSI_PADDING on davranışını görüntüler.Yani, izleyen boşluklar ve sıfır olmayan atılır.
set ANSI_PADDING set ANSI_DEFAULTS on olduğunda etkinleştirilir.
set ANSI_PADDING ayarı yürütmek sırasında küme veya çalışma saat ve ayrıştırma saatzaman.
Ne zaman ANSI_PADDING küme off, MIN, MAK veya üst karakter sütunlarda ilgili sorgular için olabilir, daha yavaş SQL Server 2000.
İzinler
Üyelik gerektiren public rolü.
Ö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