SQL Server:将数据表传递给具有空值的存储过程

时间:2017-06-16 13:12:16

标签: c# sql-server-2008 stored-procedures datatable

我在SQL Server中创建了一个用户定义的表类型,并作为参数传递给存储过程。

从C#开始,我创建了一个afterPropertiesSet,然后用与SQL Server中的表类型相同的列数填充它,列类型也相同。

我在SQL Server中创建的这个表类型允许某些列的空值,所以从C#我不需要设置它们时我设置为null类型。

然后从我的存储过程中执行:

DataTable

我的问题是:SQL Server在用户定义的表中找到一个列为null时会做什么?它是否会识别C#null类型并自动插入目标列表CREATE PROCEDURE [MySP] @Data MyDataType READONLY AS BEGIN SET NOCOUNT ON; INSERT INTO OneTable SELECT * FROM @Data END 作为正确的SQL Server OneTable值?

1 个答案:

答案 0 :(得分:1)

你应该使用C#中的System.DBNull单例类。这与T-SQL中的NULL相同。