SORU
3 EKİM 2008, Cuma


Masa olmadığını kontrol SQL Server var

Bu tabloya SQL Server 2000/2005 kullanarak SQL Deyimi olup olmadığını kontrol etmek için nasıl nihai bir tartışma olmak istiyorum.

Cevap için Google, pek çok farklı cevap alırsınız. Bunu yapmanın bir resmi/geriye ve ileriye uyumlu bir yolu var mı?

İşte bunu yapmanın iki olası yolları vardır. Hangisi ikisi arasında ne standart/en iyi yolu?

Birinci yol:

IF EXISTS (SELECT 1 
           FROM INFORMATION_SCHEMA.TABLES 
           WHERE TABLE_TYPE='BASE TABLE' 
           AND TABLE_NAME='mytablename') 
   SELECT 1 AS res ELSE SELECT 0 AS res;

İkinci yol:

IF OBJECT_ID (N'mytablename', N'U') IS NOT NULL 
   SELECT 1 AS res ELSE SELECT 0 AS res;

MySQLbasit sağlarTABLO GİBİ GÖSTERMEK '%tablename%'; açıklama. Benzer bir şey arıyorum.

CEVAP
3 EKİM 2008, Cuma


Bu gibi sorgular için her zaman en iyisi INFORMATION_SCHEMA bir görünüm kullanın. Bu görünümler (çoğunlukla) birçok farklı veritabanları arasında standart ve nadiren sürüm için değiştirin.

Eğer bir tablo olup olmadığını kontrol etmek için:

IF (EXISTS (SELECT * 
                 FROM INFORMATION_SCHEMA.TABLES 
                 WHERE TABLE_SCHEMA = 'TheSchema' 
                 AND  TABLE_NAME = 'TheTable'))
BEGIN
    --Do Stuff
END

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Cartoonium

    Cartoonium

    11 NİSAN 2011
  • Chriselle Lim

    Chriselle Li

    26 Ocak 2008
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006