set ANSI_PADDING (Transact-sql)
Denetimleri sütun biçimini saklar değerleri sütun tanımlı boyutundan daha kısa ve içinde sütun depolar izleyen değerler yolu boşaltan char, varchar, binary, ve varbinaryveri.
Önemli |
---|
Gelecek sürüm Microsoft SQL ServerANSI_PADDING on her zaman olacaktır ve açıkça seçeneği off için ayarlanmış tüm uygulamaları bir hata üretecektir. 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. |
Transact-SQL Sözdizim Kuralları
Sözdizimi
SET ANSI_PADDING { ON | OFF }
Açıklamalar
İle tanımlanan sütunları char, varchar, binary, ve varbinaryveri türlerine sahip tanımlanan boyutu.
Bu ayar yalnızca yeni sütunlar tanımını etkiler. Sütun oluşturduktan sonra SQL Serversütun oluştururken ayarına göre değerleri saklar. Bu ayarı daha sonra değişiklik varolan sütunları etkilenmez.
[!NOT]
ANSI_PADDING için on her zaman olarak ayarlanması önerilir.
Değerler içeren sütunlar içine yerleştirildiğinde aşağıdaki tabloda set ANSI_PADDING ayarı etkilerini gösterir.Set char, varchar, binary, ve varbinaryveri türlerini.
Ayarı |
char (n) not null veya ikili (n) not null |
char (n) null veya ikili (n) null |
varchar (n) veya varbinary (n) |
---|---|---|---|
ON |
Yastık özgün değeri (boşluklar için sondaki ile charsütunlar ve sondaki sıfırları için binarysütunlar) sütun uzunluğu. |
Olarak aynı kuralları izler char(n)ya binary(n)ANSI_PADDING set on olduğunda null DEĞIL. |
Sondaki boşlukları eklenen karakter değerleri varcharsütunları kesilmiş değil. Sondaki sıfırları ikili değerleri eklenen varbinarysütunları kesilmiş değil. Değerlerini sütun uzunluğunu doldurulur değil. |
OFF |
Yastık özgün değeri (boşluklar için sondaki ile charsütunlar ve sondaki sıfırları için binarysütunlar) sütun uzunluğu. |
Olarak aynı kuralları izler varcharveya varbinaryset ANSI_PADDING kapalı olduğunda |
Sondaki boşluk karakteri değerleri eklenen bir varcharsütun kesilmiş. Sondaki sıfırları ikili değerleri eklenen bir varbinarysütun kesilmiş. |
[!NOT]
Edilirken, charsütunları yastıklı boşluklar ile ve binarysütunlar sıfırlarla yastıklı. Ne zaman kesilmiş, charsütunlarınızın kesilmiş, sondaki boşlukları ve binarysütunlarınızın kesilmiş ardarda sıfırları.
set ANSI_PADDING oluştururken veya dizinler üzerinde hesaplanan sütunlar veya dizinlenmiş görünümleri değiştirme on olması gerekir. Hesaplanan sütunlar üzerinde gerekli set seçenek ayarları ile dizinleri ve dizin oluşturulmuş görünümler hakkında daha fazla bilgi için bkz: "Konuları ne zaman sen kullanma set deyimleri" in Deyimiyle (Transact-sql) bırak.
set ANSI_PADDING için varsayılan açık'tır. SQL ServerYerel istemci odbc sürücüsü ve SQL ServerYerel istemci ole db sağlayıcısı için SQL Serverotomatik olarak ANSI_PADDING on when connecting. Bu odbc bağlantı öznitelikler'de, odbc veri kaynaklarında yapılandırılabilir veya bağlamadan önce uygulamadaki ole db bağlantı özelliklerini ayarlayın. İçin set ANSI_PADDING off bağlantıları gelen db kitaplık uygulamaları için varsayılandır.
set ANSI_PADDING ayarı etkilemez nchar, nvarchar, ntext, text, imageve büyük bir değer. Onlar her zaman set ANSI_PADDING on davranışı gösterir. Yani sondaki boşlukları ve sıfır olmayan atılır.
set ANSI_PADDING, ANSI_DEFAULTS SET on olduğunda etkinleştirilir.
set ANSI_PADDING ayarı ayarlanır yürütme veya zaman değil ayrıştırma saati ve çalıştırın.
İzinler
Üyelik publicrolü.
Ö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
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
Ayrıca bkz.
Başvuru
Deyimiyle (Transact-sql) bırak