set ANSI_WARNINGS (Transact-sql)

Birkaç hata koşulları için ISO standart davranış belirtir.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

SET ANSI_WARNINGS { ON | OFF }

Açıklamalar

set ANSI_WARNINGS, aşağıdaki koşullar etkiler:

  • sum, avg, max, MIN, STDSAPMA, STDSAPMAS, var, VARS veya count, gibi toplama işlevleri null değerler görünür Eğer on olarak ayarlandığında, bir uyarı iletisi oluşturulur. Için off ayarlandığında, bir uyarı verilir.

  • on olarak ayarlandığında, sıfır ile bölme ve Aritmetik taşma hatalarına neden geri alınmasını ifade ve bir hata iletisi oluşturulur. off ayarlandığında, döndürülecek boş değerleri sıfır ile bölme ve Aritmetik taşma hataları neden. Bir INSERT veya update denenir döndürülecek null değerleri neden olan sıfır ile bölme ya da Aritmetik Taşma hata davranış gerçekleşir bir character, Unicode veya binarysütunu yeni bir değer uzunluğu sütunun en büyük boyutu aşıyor. INSERT veya update set ANSI_WARNINGS on olarak ayarlanmışsa, iptal ISO standardında belirtildiği gibi. Karakter sütunları sondaki boşluklar yoksayılır ve sondaki boş değerlere ikili sütunlar için yoksayılır. Zaman kapalı, veri sütun boyutuna kırpılır ve deyimi başarılı olur.

    [!NOT]

    Kesilme oluştuğunda herhangi bir dönüştürme için ya da binaryya varbinaryverileri, herhangi bir uyarı veya hata yok, set seçenekleri bakılmaksızın verilir.

    [!NOT]

    ANSI_WARNINGS, bir saklı yordam, kullanıcı tanımlı bir işlev parametreleri iletmek ya bildirmek ve toplu deyiminde değişkenleri ayarlamak zaman onur değil. Örneğin, bir değişken olarak tanımlanır, char(3), sonra üç karakterden daha büyük bir değere ayarlamak, veri tanımlı boyutunu ve INSERT kesilir veya update deyimi başarılı.

Sen-ebilmek kullanma user optionsseçeneği sp_configuresunucuya ANSI_WARNINGS tüm bağlantılar için varsayılan ayarı için. Daha fazla bilgi için, bkz. sp_configure (Transact-sql).

Oluşturma veya dizinler üzerinde hesaplanan sütunlar veya dizin oluşturulmuş görünümler işlemek set ANSI_WARNINGS on olması gerekir. set ANSI_WARNINGS kapalı ise, Oluştur, Güncelleştir, Ekle ve Sil deyimlerinin tablolarda dizinler üzerinde hesaplanan sütunlar veya dizin oluşturulmuş görünümler ile başarısız olur. 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.

SQL Serveriçeren ANSI_WARNINGSveritabanı seçeneği. Bu set ANSI_WARNINGS eşdeğerdir. set ANSI_WARNINGS on olarak ayarlandığında, hata veya uyarılar tarafından sıfıra bölme, dizesi veritabanı sütun için çok büyük ve diğer benzer hatalar yetiştirilir. set ANSI_WARNINGS kapalı olduğunda, bu hatalar ve uyarılar kaldırdı değil. Varsayılan değer modelveritabanı için set ANSI_WARNINGS kapalı olduğu Belirtilmezse, ayarı ANSI_WARNINGSgeçerlidir. set ANSI_WARNINGS kapalı, yoksa SQL Serverdeğerini kullanır is_ansi_warnings_onsütununda sys.databases Katalog görünümü. Daha fazla bilgi için, bkz. Setting Database Options.

ANSI_WARNINGS dağıtılmış sorguları yürütme için on olarak ayarlanmalıdır.

SQL ServerYerel istemci odbc sürücüsü ve SQL ServerYerel istemci ole db sağlayıcısı için SQL Serverotomatik olarak set ANSI_WARNINGS on olarak bağlanırken. Bu odbc bağlantı öznitelikler, uygulama bağlanmadan önce ayarlamak odbc veri kaynaklarında yapılandırılabilir. İçin set ANSI_WARNINGS kapalı bağlantıları gelen db kitaplık uygulamaları için varsayılandır.

set ANSI_WARNINGS, ANSI_DEFAULTS SET on olduğunda etkinleştirilir.

set ANSI_WARNINGS ayarı ayarlanır yürütme veya zaman değil ayrıştırma saati ve çalıştırın.

set ARITHABORT veya ARITHIGNORE kapalı'dır ve set ANSI_WARNINGS on, SQL Serverhala hata iletisi tarafından sıfıra bölme veya taşma hataları karşılaşıyor döndürür.

İzinler

Üyelik publicrolü.

Örnekler

Önceden, on set ANSI_WARNINGS ile açıklanan üç durumlar aşağıdaki örnekte gösterilmiştir ve kapalı.

USE AdventureWorks2012;
GO

CREATE TABLE T1 (
   a INT, 
   b INT NULL, 
   c VARCHAR(20)
);
GO

SET NOCOUNT ON

INSERT INTO T1 
VALUES (1, NULL, '');
INSERT INTO T1 
VALUES (1, 0, '');
INSERT INTO T1 
VALUES (2, 1, '');
INSERT INTO T1 
VALUES (2, 2, '');

SET NOCOUNT OFF;
GO
  
PRINT '**** Setting ANSI_WARNINGS ON';
GO
  
SET ANSI_WARNINGS ON;
GO
  
PRINT 'Testing NULL in aggregate';
GO
SELECT a, SUM(b) 
FROM T1 
GROUP BY a;
GO
  
PRINT 'Testing String Overflow in INSERT';
GO
INSERT INTO T1 
VALUES (3, 3, 'Text string longer than 20 characters');
GO
  
PRINT 'Testing Divide by zero';
GO
SELECT a / b AS ab 
FROM T1;
GO
  
PRINT '**** Setting ANSI_WARNINGS OFF';
GO
SET ANSI_WARNINGS OFF;
GO
  
PRINT 'Testing NULL in aggregate';
GO
SELECT a, SUM(b) 
FROM T1 
GROUP BY a;
GO
  
PRINT 'Testing String Overflow in INSERT';
GO
INSERT INTO T1 
VALUES (4, 4, 'Text string longer than 20 characters');
GO
SELECT a, b, c 
FROM T1
WHERE a = 4;
GO

PRINT 'Testing Divide by zero';
GO
SELECT a / b AS ab 
FROM T1;
GO

DROP TABLE T1

USE AdventureWorks2012;
GO

CREATE TABLE T1 (
   a INT, 
   b INT NULL, 
   c VARCHAR(20)
);
GO

SET NOCOUNT ON

INSERT INTO T1 
VALUES (1, NULL, '');
INSERT INTO T1 
VALUES (1, 0, '');
INSERT INTO T1 
VALUES (2, 1, '');
INSERT INTO T1 
VALUES (2, 2, '');

SET NOCOUNT OFF;
GO
  
PRINT '**** Setting ANSI_WARNINGS ON';
GO
  
SET ANSI_WARNINGS ON;
GO
  
PRINT 'Testing NULL in aggregate';
GO
SELECT a, SUM(b) 
FROM T1 
GROUP BY a;
GO
  
PRINT 'Testing String Overflow in INSERT';
GO
INSERT INTO T1 
VALUES (3, 3, 'Text string longer than 20 characters');
GO
  
PRINT 'Testing Divide by zero';
GO
SELECT a / b AS ab 
FROM T1;
GO
  
PRINT '**** Setting ANSI_WARNINGS OFF';
GO
SET ANSI_WARNINGS OFF;
GO
  
PRINT 'Testing NULL in aggregate';
GO
SELECT a, SUM(b) 
FROM T1 
GROUP BY a;
GO
  
PRINT 'Testing String Overflow in INSERT';
GO
INSERT INTO T1 
VALUES (4, 4, 'Text string longer than 20 characters');
GO
SELECT a, b, c 
FROM T1
WHERE a = 4;
GO

PRINT 'Testing Divide by zero';
GO
SELECT a / b AS ab 
FROM T1;
GO

DROP TABLE T1

Ayrıca bkz.

Başvuru

Insert (Transact-sql)

select (Transact-sql)

Deyimiyle (Transact-sql) bırak

set ANSI_DEFAULTS (Transact-sql)

SESSIONPROPERTY (Transact-sql)