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

  • audivila

    audivila

    5 HAZİRAN 2009
  • hydejiaqi

    hydejiaqi

    12 Mart 2008
  • thenewboston

    thenewboston

    4 ŞUBAT 2008