我已經成功地將CROSS JOIN
實現到我的查詢中,但是,現在我有興趣將交叉連接中的第一個表的內容更改爲更具動態性。所以我想將第一個表格作爲變量存儲,然後在我的變量表格和另一個表格之間執行CROSS JOIN
。從SQL中的參數進行CROSS JOIN
是否有無法實現這種行爲?但是我如何獲取C#DataTable並將其放入SQL
的表格聲明中?
有沒有人曾經嘗試過這樣的事情?
我已經成功地將CROSS JOIN
實現到我的查詢中,但是,現在我有興趣將交叉連接中的第一個表的內容更改爲更具動態性。所以我想將第一個表格作爲變量存儲,然後在我的變量表格和另一個表格之間執行CROSS JOIN
。從SQL中的參數進行CROSS JOIN
是否有無法實現這種行爲?但是我如何獲取C#DataTable並將其放入SQL
的表格聲明中?
有沒有人曾經嘗試過這樣的事情?
您需要構建一個存儲過程(或多個)。
裏面一個MS SQL(2005年,我認爲)存儲過程,你可以創建一個表變量象下面這樣:
DECLARE @tablevar table (
ID int not null,
Name nvarchar(100) not null,
<rest of your columns>
)
在SQL 2008,您還可以通過一個DataTable作爲參數傳遞給了SP來自.NET代碼。請參閱http://www.sqlteam.com/article/sql-server-2008-table-valued-parameters以瞭解如何使用(包括VB.NET示例代碼)。
你可以傳遞一個DataTable添加到存儲過程作爲Table-valued parameter
取決於你在做什麼,你可能也想看看錶值函數和APPLY