2011-03-08 71 views
0

我已经成功地将CROSS JOIN实现到我的查询中,但是,现在我有兴趣将交叉连接中的第一个表的内容更改为更具动态性。所以我想将第一个表格作为变量存储,然后在我的变量表格和另一个表格之间执行CROSS JOIN从SQL中的参数进行CROSS JOIN

是否有无法实现这种行为?但是我如何获取C#DataTable并将其放入SQL的表格声明中?

有没有人曾经尝试过这样的事情?

回答

0

您需要构建一个存储过程(或多个)。

里面一个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示例代码)。

0

取决于你在做什么,你可能也想看看表值函数和APPLY