SORU
16 EKİM 2008, PERŞEMBE


Geçen Listesi<> Saklı Yordam SQL

Genellikle veritabanında belirli bir kayıt için birden çok öğe yüklemek zorunda kaldım. Örneğin: bir web sayfası görüntüler öğeleri dahil etmek için bir tek rapor, hangi veritabanındaki kayıtları (Rapor kaydı Raporu tablo öğelerdir kayıtları Madde tablo). Bir kullanıcı öğeleri bir web uygulaması üzerinden tek bir rapor eklemek için seçerek, hadi 3 öğe seçin ve Gönder deyin. Süreci bir tablo rapor öğeleri (Reportİd,İçeren) kayıtları ekleyerek bu rapor için bu 3 öğe ekleyecektir.

Şu anda, kod böyle bir şey yapardım:

public void AddItemsToReport(string connStr, int Id, List<int> itemList)
{
    Database db = DatabaseFactory.CreateDatabase(connStr);

    string sqlCommand = "AddItemsToReport"
    DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand);

    string items = "";
    foreach (int i in itemList)
        items  = string.Format("{0}~", i);

    if (items.Length > 0)
        items = items.Substring(0, items.Length - 1);

    // Add parameters
    db.AddInParameter(dbCommand, "ReportId", DbType.Int32, Id);
    db.AddInParameter(dbCommand, "Items", DbType.String, perms);
    db.ExecuteNonQuery(dbCommand);
}

ve bu Saklı yordam:

INSERT INTO ReportItem (ReportId,ItemId)
SELECT  @ReportId,
          Id
FROM     fn_GetIntTableFromList(@Items,'~')

İşlevi tam sayılardan oluşan bir sütun bir tablo döndürür.

Bu benim sorum: daha iyi bir şekilde böyle bir şey işlemek için var mı? Not,, benim sorum özellikle kodu ile ilgili olmadığı gibi veritabanı normalleştirme ya da bir şey sormuyorum.

CEVAP
21 Ocak 2009, ÇARŞAMBA


Eğer SQL Server 2008 olacak sizin için bir seçenek ise, "değerli Tablo" tam olarak bu sorunu çözebilmek için parametreleri olarak adlandırılan yeni bir özelliği var

Daha fazla bilgi here here kontrol IZLEMEK ya da sadece 2008-değerli tablo parametreleri bilgi bol bulabilirsiniz ve örnekleri." - Server "SQL için Google sor

Şiddetle tavsiye edilir -eğer2008... SQL Server'a taşıyabilirsiniz

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joseph Herscher

    Joseph Hersc

    14 Mart 2007
  • Kindness

    Kindness

    23 Ocak 2006
  • trickycharms

    trickycharms

    6 Aralık 2013