我已经成功地将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