我有一个关于将用户定义的表类型作为参数的存储过程的问题。我知道我只需要在 c# 代码中创建一个与 SQL DB 中用户定义的表类型相对应的数据表。就像这里 How to pass User Defined Table Type as Stored Procedured parameter in C#
但是,我想避免的是在代码中手动创建 DataTable,而是自动创建 DataTable。是否有可能通过查询从数据库中获取它?
如果这不可能,那么另一种可能性是获取用户定义表类型的定义,然后使用它来自动生成 DataTable。但接下来的问题是如何获得类型的定义?
任何人都对这个问题有任何解决方案,我发现的所有示例都是在代码中手动生成用户定义的数据类型作为 DataTable。
最佳答案
如果您知道表类型的名称,您应该能够执行以下 SQL:
declare @a dbo.TT
select * from @a
(其中dbo.TT
是表类型的名称)
这将生成一个包含所有适当架构信息(列名和类型)的空结果集。如果您将它与 DataAdapter
一起使用来填充 DataTable
,您应该已经准备就绪。
关于C#自动生成SQL "user-defined table type",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39020952/