SORU
21 HAZİRAN 2010, PAZARTESİ


Nasıl programlı olarak kontrol edin (ayrıştırma) TSQL ifadesi geçerliliğini miyim?

Entegrasyon testleri daha idempotent yapmaya çalışıyorum. Bir fikir her testten sonra geri alma, başka fikri olan metin ayrıştırma bazı nasıl programlama yoluyla, Sorgu Çözümleyicisi veya SSMS yeşil onay kutusuna benzer yürütmek için.

Nasıl yapılır: SQL Server çalıştıran olmadan benim komut ayrıştırma için ADO.NET kullanıyor muyum?

GÜNCELLEME: Bu nihayet istediğiniz gibi çalıştı nedir:

using (DbCommand executeOnly = Factory.DbCommand())
{
    executeOnly.Connection = command.Connection;
    executeOnly.CommandType = CommandType.Text;
    executeOnly.CommandText = "SET NOEXEC ON;";
    executeOnly.Connection.Open();
    executeOnly.ExecuteNonQuery();
}
//set more properties of command.
command.Execute();

Anlaşılmaz nedenlerle, "SET PARSEONLY ON" sadece Sorgu Çözümleyicisi çalıştı. ADO.NET bir bağlantıda bu set edemedim. Yaygın bir hata değil PARSEONLY yalnızca sözdizimi hataları yakalamak gibi görünüyor, çünkü en iyisi bu. SET NOEXEC ON başvurular eksik bir tablo veya sütun bir görünüm veya saklı yordam içinde eksik bir parametre gibi bir hata daha geniş bir çeşidi, yakalayacak.

CEVAP
21 HAZİRAN 2010, PAZARTESİ


Aradığınız komut SET NOEXEC ON olduğunu düşünüyorum. Eğer bağlantınız için bu ayarlarsanız, sorgular ayrıştırılmış olacak ama yürütülmez. Başka bir seçenek SET PARSEONLY ON, ama dürüst olmak gerekirse ikisi arasındaki fark gerçekten ne olduğundan emin değilim.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Film Riot

    Film Riot

    16 NİSAN 2006
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006
  • Unbox Therapy

    Unbox Therap

    21 Aralık 2010