2010-11-18 28 views
3

我使用LINQ DataContext的Log屬性將生成的SQL發送到調試窗口。 (有關於此的post by Kris Vandermotten)。這很好,除了輸出的SQL參數是一些SQL註釋,所以我無法在Management Studio中運行查詢。這裏有一個例子:在SSMS中執行LINQ生成的SQL

SELECT * FROM table WHERE id IN (@p0,@p1,@p2) 
-- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [5] 
-- @p1: Input Int (Size = 0; Prec = 0; Scale = 0) [1] 
-- @p2: Input Int (Size = 0; Prec = 0; Scale = 0) [13189086] 

那麼,有沒有任何工具可以將此文本轉換爲有效的SQL?

+0

是您想要的結果只是與他們的價值觀取代了所有參數佔位符的SQL語句?或者您是否還希望包含'DECLARE'語句,類似於我的回覆中的LINQPad輸出? – 2010-11-21 16:32:59

+0

它有很好的參數DECLAREd,但用參數代替它是合理的。目標是讓查詢ehich可以執行。 – jaraics 2010-11-22 07:21:48

回答

2

您可以抓取LINQPad(免費!)並直接運行LINQ to SQL。然後點擊LINQPad中的「SQL」選項卡查看生成的SQL。它會爲您提供所有參數,您可以將其複製/粘貼到SSMS中(或者從SQL選項卡中單擊「分析SQL」以在SSMS中啓動它)。您也可以直接從LINQPad運行它。

截圖:

LINQPad

+0

謝謝,這是一個很好的入口,但不是我正在尋找的答案。 – jaraics 2010-11-21 09:55:10