Bir meslektaşınızın senaryosunu çalıştırırken bugün yukarıdaki 'ANSI uyarısı' mesajını gördüm (ve birçok ifadeden hangisinin uyarının gösterilmesine neden olduğunu bilmiyorum).
Geçmişte görmezden geldim: Kendimi boş bırakmıyorum ve bu yüzden onları ortadan kaldıracak her şey kitabımda iyi bir şey! Ancak bugün 'SET' kelimesi tam anlamıyla bana bağırdı ve kelimenin anlamının bu bağlamda ne olması gerektiğini bilmediğimi fark ettim.
İlk düşüncem, büyük harf olduğu gerçeğine dayanarak, SETanahtar kelimeye atıfta bulunması ve "atama" anlamına gelmesidir.
UPDATE <table> SET ...
...ON DELETE SET NULL...
SET IDENTITY_INSERT <table> ON
SQL Server Yardımı'na göre, 'ANSI uyarıları' özelliği ISO / ANSI SQL-92'yi temel alır; bu özellik, bir alt başlıktaki 'Set operasyonu' terimini, dolayısıyla başlık durumunda, veri atama bölümü. Ancak, hata iletisinin hızlı bir Googlinginden sonra SELECT, görünüşte hiçbir ödev içermeyen sorgular olan örnekler görüyorum .
SQL Server uyarısının ifadesine dayanan ikinci düşüncem, kümenin matematiksel anlamının ima edildiği idi. Ancak, SQL'de toplama kesinlikle ayarlanmış bir işlem konuştuğunu sanmıyorum. SQL Server ekibi bunun ayarlanmış bir işlem olduğunu düşünse bile, 'set' kelimesini büyük harflere koymanın amacı nedir?
Googling yaparken bir SQL Server hata mesajı fark ettim:
Table 'T' does not have the identity property. Cannot perform SET operation.
Burada aynı durumda 'SET operasyonu' aynı sözcükler sadece IDENTITY_INSERTmülkün atanmasına atıfta bulunabilir , bu da beni ilk düşünceme geri getirir.
Meseleye kimse ışık tutabilir mi?
SETher zaman bir anahtar kelime gibi tam büyük harf
SELECT * FROM sys.messages WHERE text LIKE '%SET operation%'SETanahtar kelime de gösteren diğer 3 sonuç verir .
set operationsatıfta bulunmak için çok sayıda referans buldum UNIONve INTERSECTve bu koşulların hiçbirinde EXCEPTortaya çıkan hatayı alamıyorum NULL. Eski bir hata mesajı olabileceğini düşünüyorum.