вставить в не работает - PullRequest
       2

вставить в не работает

0 голосов
/ 04 ноября 2010

Почему не работает приведенный ниже запрос:

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.

Ответы [ 3 ]

2 голосов
/ 04 ноября 2010

В таблице ProcessStatus может быть ошибочный триггер.

0 голосов
/ 04 ноября 2010

В этом нет ничего плохого.Это работает для меня:

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 рядов)

Вы абсолютно уверены в том, что происходит?

0 голосов
/ 04 ноября 2010

При условии, что [Процесс] имеет только одно поле (или любое другое автоматическое приращение), вам не нужен подзапрос.Попробуйте:

insert into [ProcessStatus] ([ProcessId])
select distinct 
     [ProcessId]
FROM [Process]

РЕДАКТИРОВАТЬ: если вам просто интересно, почему сообщение об ошибке, оно должно работать, вы уверены, что это там, где оно не работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...