SET İfadeler (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Transact-SQL programlama dili, belirli bilgilerin mevcut oturum yönetimini değiştiren birkaç SET ifade sunar. Bu ifadeler SET , aşağıdaki tabloda gösterilen kategorilere göre gruplandırılmıştır.

Yerel değişkenleri bu SET ifadeyle ayarlama hakkında bilgi için bkz.SET @local_variable (Transact-SQL)

Kategori Statements
Tarih ve saat ifadeleri SET DATEFIRST

SET DATEFORMAT
Kilitleme ifadeleri SET DEADLOCK_PRIORITY

SET LOCK_TIMEOUT
Çeşitli deyimler SET CONCAT_NULL_YIELDS_NULL

SET CURSOR_CLOSE_ON_COMMIT

SET FIPS_FLAGGER

SET IDENTITY_INSERT

SET LANGUAGE

SET OFFSETS

SET QUOTED_IDENTIFIER
Sorgu Yürütme İcmaları SET ARITHABORT

SET ARITHIGNORE

SET FMTONLY
Not: Bu özellik, SQL Server'ın gelecekteki bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.

SET NOCOUNT

SET NOEXEC

SET NUMERIC_ROUNDABORT

SET PARSEONLY

SET QUERY_GOVERNOR_COST_LIMIT

SET SONUÇ SET ÖNIZLEME (Önizleme)
Not: Bu özellik yalnızca Azure Synapse Analytics için geçerlidir.

SET ROWCOUNT

SET TEXTSIZE
ISO Ayarları ifadeleri SET ANSI_DEFAULTS

SET ANSI_NULL_DFLT_OFF

SET ANSI_NULL_DFLT_ON

SET ANSI_NULLS

SET ANSI_PADDING

SET ANSI_WARNINGS
İstatistik açıklamaları SET FORCEPLAN

SET SHOWPLAN_ALL

SET SHOWPLAN_TEXT

SET SHOWPLAN_XML

SET STATISTICS IO

SET STATISTICS XML

SET STATISTICS PROFILE

SET STATISTICS TIME
İşlem beyanları SET IMPLICIT_TRANSACTIONS

SET REMOTE_PROC_TRANSACTIONS

SET TRANSACTION ISOLATION LEVEL

SET XACT_ABORT

İfadeleri SET Kullanırken Dikkate Alınanlar

  • Tüm SET ifadeler yürütme veya çalışma zamanında çalışır, ancak bu ifadeler ayrıştırma zamanında çalışır:

    • SET FIPS_FLAGGER
    • SET OFFSETS
    • SET PARSEONLY
    • ve SET QUOTED_IDENTIFIER
  • Bir SET ifade saklanan bir prosedürde veya tetikleyicide çalıştırılırsa, saklanan prosedür veya tetikleyici kontrolü geri getirdikten sonra seçeneğin SET değeri geri yüklenir. Ayrıca, dinamik bir SQL dizesinde sp_executesql veya EXECUTE kullanılarak çalışan bir SET ifade belirtirseniz, dinamik SQL dizesinde belirttiğiniz batch'ten control geri döndükten sonra seçeneğin SET değeri geri döner.

  • Saklanan prosedürler SET , çalıştırma zamanında belirtilen ayarlarla çalıştırılır, SETSET ANSI_NULLS hariç, ve SETSET QUOTED_IDENTIFIERhariç. Saklanan prosedürler için saklanan SETSET ANSI_NULLS prosedür oluşturulma zamanında belirtilen veya SETSET QUOTED_IDENTIFIER kullanılan ayar. Eğer bir saklanan prosedür içinde kullanılırsa, herhangi bir SET ayar göz ardı edilir.

  • sp_configurekullanıcı seçenekleri ayarı sunucu çapında ayarlar sağlar ve birden fazla veritabanında çalışır. Bu ayar da açık SET bir ifade gibi davranır, ancak giriş zamanında gerçekleşir.

  • Veritabanı ALTER DATABASE ayarları yalnızca veritabanı düzeyinde geçerlidir ve yalnızca açıkça ayarlandığında geçerlidir. Veritabanı ayarları, sp_configure kullanılarak belirlenen örnek seçenekleri ayarlarını geçersiz kılar.

  • Bir SET ifade AÇIK ve KAPALI kullanıyorsa, birden fazla SET seçenek için her ikisini de belirtebilirsiniz.

    Uyarı

    Bu istatistikle ilgili SET seçenekler için geçerli değil.

    Örneğin, SET QUOTED_IDENTIFIER, ANSI_NULLS ON hem QUOTED_IDENTIFIER de ANSI_NULLS ON'a ayar.

  • SET Ifade ayarları, kullanılarak belirlenen aynı veritabanı seçenekleri ALTER DATABASEayarlarını geçersiz kılar. Örneğin, bir SET ANSI_NULLS ifadede belirtilen değer, ANSI_NULLs için veritabanı ayarını geçersiz kılar. Ayrıca, bazı bağlantı ayarları, bir kullanıcı veritabanına bağlandığında, sp_configure kullanıcı seçenekleri ayarının önceki kullanımıyla veya tüm ODBC ve OLE/DB bağlantılarına uygulanan değerlere göre otomatik olarak ONAYLANIR.

  • ALTER, CREATE ve DROP DATABASE ifadeler ortamı SETSET LOCK_TIMEOUT onurlandırmaz.

  • Bir genel veya kısayol SET ifadesi birkaç ayar belirlediğinde, kısayol SET ifadesinin yayımlanması kısayol SET ifadesinin etkilediği tüm seçenekler için önceki ayarları sıfırlar. Kısayol SET ifadesi verildikten sonra bir kısayol SET ifadesi etkilenen bir seçenek, SET bireysel SET ifade karşılaştırılabilir kısayol ayarlarını geçersiz kılar. Bir kısayol SET ifadesine örnek olarak SETSET ANSI_DEFAULTS.

  • Toplu çalışmalar kullanıldığında, veritabanı bağlamı, USE ifadesi kullanılarak oluşturulan toplu tarafından belirlenir. Planlanmamış sorgular ve depolanan prosedürün dışında çalışan ve toplu olarak bulunan tüm diğer ilemeler, veritabanının seçenek ayarlarını ve USE ifadesi tarafından oluşturulan bağlantıyı devralır.

  • Birden fazla Aktif Sonuç Seti (MARS) isteği, en güncel oturum SET seçeneği ayarlarını içeren küresel bir durumu paylaşır. Her istek çalıştırıldığında, seçenekleri değiştirebilir SET . Değişiklikler, ayarlandıkları istek bağlamına özgüdür ve diğer eşzamanlı MARS taleplerini etkilemez. Ancak, istek yürütme tamamlandıktan sonra yeni SET seçenekler küresel oturum durumuna kopyalanır. Bu değişiklikten sonra aynı oturumda yürütülen yeni istekler bu yeni SET seçenek ayarlarını kullanacaktır.

  • Bir depolanmış prosedür bir toplu veya başka bir depolanmış prosedürden çalıştırıldığında, veritabanında ayarlanmış seçenek değerleri altında çalıştırılır. Örneğin, saklanan prosedür db1.dbo.sp1 depolanmış prosedür db2.dbo.sp2 çağrısı yaptığında, depolanmış prosedür sp1 veritabanı db1'in mevcut uyumluluk seviyesi ayarı altında çalıştırılır ve depolanmış prosedür sp2 veritabanı db2'nin mevcut uyumluluk seviyesi ayarı altında çalıştırılır.

  • Bir Transact-SQL ifadesi birden fazla veritabanında bulunan nesneleri ele aldığında, mevcut veritabanı bağlamı ve mevcut bağlantı bağlamı o ifadeye uygulanır. Bu durumda, Transact-SQL ifade bir toplu haldeyse, mevcut bağlantı bağlamı USE ifadesi tarafından tanımlanan veritabanıdır; Eğer Transact-SQL ifadesi bir depolanmış prosedürdeyse, bağlantı bağlamı saklanan prosedürü içeren veritabanıdır.

  • Hesaplanan sütunlarda veya indekslenmiş görünümlerde indeksler oluştururken ve yönetirken, bu SET seçenekleri ON'a ayarlamanız gerekir: ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER, ANSI_NULLSANSI_PADDING, , , , ve ANSI_WARNINGS. Seçeneği NUMERIC_ROUNDABORT KAPALI olarak ayarlayın.

    Bu seçeneklerden herhangi birini gerekli değerlere ayarlamazsanız, INSERT, UPDATE, DELETE, DBCC CHECKDB ve DBCC CHECKTABLE işlemleri indekslenmiş görünümlerde veya hesaplanan sütunlarda indeksli tablolarda başarısız olur. SQL Server, yanlış ayarlanmış tüm seçenekleri listeleyen bir hata oluşturur. Ayrıca, SQL Server bu tablolarda veya indekslenmiş görünümlerde SELECT ifadelerini, hesaplanan sütunlardaki veya görünümlerdeki indeksler yokmuş gibi işliyor.

  • SET RESULT_SET_CACHING AÇIKSA, mevcut istemci oturumu için sonuç önbellekleme özelliğini etkinleştirir. Result_set_caching veritabanı seviyesinde kapalıysa oturum için AÇILAMAZ. SET RESULT_SET_CACHING KAPALI olduğunda, mevcut istemci oturumu için sonuç kümesi önbelleğe alma özelliği devre dışı bırakılır. Bu ayarı değiştirmek için kamu rolünde üyelik gereklidir. Apply to: Azure Synapse Analytics Gen2