SELECT INTO tablo sorgusu için WHERE 1 = 2'nin amacı nedir


39

SQL Server'da var olan tablodan yeni bir tablo oluşturmak istiyorsak aşağıdakileri yapabiliriz:

SELECT * into Table2
from Table1
WHERE 1=2

Yan tümce maddesinin amacı nedir? Nerede yan tümce olmadan denedim ve iyi çalıştı. Bunu, cümlede internette birçok örnekte görmüştüm, ancak bunun neden gerekli olduğunu değil.

Yanıtlar:


54

WHERE 1=2Maddeyi bu SELECT INTOsorguya koymanızın nedeni , mevcut tablonun veri içermeyen bir alan kopyasını oluşturmaktır .

Bunu yaptıysanız:

select *
into Table2
from Table1

Table2Table1veri satırları da dahil olmak üzere tam bir kopyası olacaktır . Ancak içerdiği verileri istemiyorsanız Table1ve yalnızca tablo yapısını istiyorsanız, WHEREtüm verileri filtrelemek için bir madde koyun .

BOL SELECT INTOReferans teklifi:

SELECT… INTO, varsayılan dosya grubunda yeni bir tablo oluşturur ve ortaya çıkan satırları sorgudan içine ekler.

Senin Eğer WHEREfıkra hiçbir satır çıkan etti, hiçbiri yeni tabloya eklenecektir: Bu nedenle, (bu durumda istenen sonuç olurdu) Verisiz orijinal tablonun yinelenen şema ile bitirmek.

Aynı etki, TOP (0)örneğin:

select top (0) *
into Table2
from Table1;

Not : SELECT INTOKaynak tablonun indekslerini, kısıtlamalarını, tetikleyicilerini veya bölüm şemasını çoğaltmaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.