none
Sql字串很長、SqlCommand的Parameters很多,會不會有什麼問題? RRS feed

  • 問題

  • In SQL Server 2005  + ASP.Net 2.0

     

     

    因為需要一次新增一批資料(例如訂單內容),因此我串接了很長很長的 Sql 字串,串接的結果例如像這樣:

    Code Snippet

    SqlStr = _

    "INSERT INTO [TableName]([FieldA],[FieldB]....) VALUES(@valA1,@valB1.....);" & _

    "INSERT INTO [TableName]([FieldA],[FieldB]....) VALUES(@valA2,@valB2.....);" & _

    "INSERT INTO [TableName]([FieldA],[FieldB]....) VALUES(@valA3,@valB3.....);" & _

    "............."

     

     

    然後在 SqlCommand 的 Parameters Add 一堆變數,像這樣

    Code Snippet

    cmd.Parameters.Add("@valA1", SqlDbType.xxxx).Value = xxxxx

    cmd.Parameters.Add("@valB1", SqlDbType.xxxx).Value = ooooo

    cmd.Parameters.Add("@valA2", SqlDbType.xxxx).Value = xoxoxo

    cmd.Parameters.Add("@valB2", SqlDbType.xxxx).Value = oxoxo

    .............

    ..........

     

     

    以上串接過程是用迴圈跑的,跑完後最後再一次用 ExecuteNonQuery 方法新增這一批資料。

     

    由於是用迴圈跑出來的,SqlStr 隨便三兩下就串接了好幾千個字,甚至上萬字,cmd.Parameters 也是隨便三兩下就好幾百個變數,甚至好幾千個。

    這樣會不會有什麼不良影響呢?

    若會的話,像這樣大批 INSERT (或 UPDATE) 資料時,有什麼更好的辦法嗎?

     

     

    謝謝~

     

     

     

     

     

     

    2008年5月20日 上午 01:34

解答

所有回覆