我在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
值?
答案 0 :(得分:1)
你应该使用C#中的System.DBNull
单例类。这与T-SQL中的NULL
相同。