【发布时间】:2024-05-29 18:10:02
【问题描述】:
当我尝试在这样的 OLE DB 命令中放入多个插入语句时:
INSERT INTO [TABLE_A] ([NAME_A]) VALUES (@a)
INSERT INTO [RELATION_TABLE]([ID_A],[ID_B])
VALUES (
(SELECT [ID_A] FROM [TABLE_A] WHERE [NAME_A] = @a),
(SELECT [ID_B] FROM [TABLE_B] WHERE [NAME_B] = @b)
)
我收到此错误:
一个 OLE DB 记录可用。资料来源:“Microsoft SQL Server Native 客户端 11.0" Hresult: 0x80004005 描述: "子查询返回 超过 1 个值。当子查询跟随=时,这是不允许的 !=、、>= 或子查询用作表达式时。"。
每个子选择语句只返回一条记录。变量已被声明和设置。 有什么建议可以解决这个问题或错误到底在哪里?
【问题讨论】:
-
似乎实际上返回了超过 1 个值。用 SELECT 代替 INSERT。
-
如果输出的记录无关紧要,ID_A和ID_B使用max
标签: sql sql-server ssis oledb