2011-03-05 46 views
2

我一直在使用SQL Server 2008有一段时间了,但只有今天,发现你可以创建一个表类型:将表类型传递给来自c#的存储过程?

CREATE type MyNewTableType as table { 

然后将它传递给PROC。

但是,这个功能是否可以在.Net应用程序中使用(C#是我的选择......)?是否可以在我的数据访问层中创建一些内容,然后将其作为参数传递给我的存储过程?

+0

请尝试通过将该表声明为表变量或Xml类型来传递该表。你会发现这将起作用。 – CarneyCode 2011-03-05 07:06:01

回答

4

是的,它可以。看到MSDN reference配置的SqlParameter实例部分它会告诉你做类似如下:

SqlParameter tvpParam = insertCommand.Parameters.AddWithValue(
    "@tvpNewCategories", addedCategories); 
tvpParam.SqlDbType = SqlDbType.Structured; 
tvpParam.TypeName = "dbo.CategoryTableType"; 

在MSDN参考这两个部分以下,这也可能会有所帮助。

+0

“addedCategories”的类型是DataTable,对吧? – Fabio 2013-05-16 13:44:15

+1

@FabioGouw根据最新的MSDN记录,它可以是DataTable,DbDataReader或IEnumerable nybbler 2013-05-16 14:28:04

相关问题