为什么下面的查询不起作用:
INSERT INTO [ProcessStatus] ([ProcessId])
SELECT TMP.[ProcessId]
FROM (
SELECT DISTINCT
[ProcessId]
FROM [Process]
) TMP
错误信息是(已添加退货):
Subquery returned more than 1 value.
This is not permitted when the subquery follows =, !=, <, <= , >, >=
or when the subquery is used as an expression.
答案 0 :(得分:2)
ProcessStatus表上可能存在错误触发器。
答案 1 :(得分:0)
假设[Process]只有一个字段(或任何其他字段自动递增),则不需要子查询。 尝试:
insert into [ProcessStatus] ([ProcessId])
select distinct
[ProcessId]
FROM [Process]
编辑:如果您只是想知道为什么错误消息,它应该有效,您确定它是失败的吗?
答案 2 :(得分:0)
这似乎没有任何问题。它对我有用:
CREATE TABLE #ProcessStatus (ProcessID INTEGER)
CREATE TABLE #Process (ProcessID INTEGER)
INSERT INTO #Process VALUES(1)
INSERT INTO #Process VALUES(2)
INSERT INTO #ProcessStatus (ProcessId)
SELECT TMP.ProcessId
FROM (
SELECT DISTINCT
ProcessId
FROM #Process
) TMP
(2行(s)受影响)
你完全确定发生了什么事吗?