【发布时间】:2014-11-13 04:57:14
【问题描述】:
我正在尝试在 sql server 中批量插入记录。我正在使用用户定义的表类型来传递来自我的 .net 应用程序的记录集合。请看下面的插入查询。
INSERT INTO MachineItems([Name],[Price],[Quantity],[ItemGroupID],[SubGroup] ,[IsDefault],
[IsRemovable],[MachineTypeID],[ItemType],[CreatedBy],[CreatedOn] )
SELECT mi.Name
,mi.Price
,mi.Quantity
,(SELECT ID from ItemGroups WHERE NAME=mi.ItemGroup) as ID
,mi.SubGroup,
CASE
WHEN mi.IsDefault ='Yes' THEN 1
WHEN mi.IsDefault ='No' THEN 0
WHEN mi.IsDefault IS NULL THEN 0
END ,
CASE
WHEN mi.IsRemovable ='Yes' THEN 1
WHEN mi.IsRemovable ='No' THEN 0
END ,
(SELECT ID from MachineTypes WHERE Name=mi.MachineType),
(SELECT ID from MachineItemTypes WHERE Name=mi.ItemType),
mi.CreatedBy
,mi.CreatedOn
FROM @MachineItems mi
我要做的是在插入记录之前进行检查,表中是否已经存在具有 [MachineTypeID] 和 [Name] 的记录。如果不存在则插入 Eles 更新记录。
如何使用用户定义的表类型来做到这一点?
【问题讨论】:
标签: sql-server constraints sql-insert user-defined-types