Оператор INSERT / SELECT вставляет только одну строку при использовании cfquery - PullRequest
1 голос
/ 10 февраля 2012

я запускаю следующий SQL внутри тега cfquery

INSERT INTO Meeting_RFPMeetings (RFP_ID, Meeting_ID, Inserted, Create_UserID)

SELECT 21, 15835, {ts '2012-02-09 14:08:28'}, 42126

UNION ALL

SELECT 21, 15917, {ts '2012-02-09 14:08:28'}, 42126

UNION ALL

SELECT 21, 17052, {ts '2012-02-09 14:08:28'}, 42126

но он вставляет только одну строку в базу данных. Когда я запускаю запрос в Query Analyzer, он вставляет 3 строки. Я использую цикл и queryparam's в моем действительном утверждении, но даже эта версия не работает.

Я использую этот код для вставки данных на другой сервер, и он отлично работает, но здесь даже

INSERT INTO TABLE (ID)

SELECT ID FROM TABLE1

вставляет только один ряд.

Сервер базы данных MSSQL 2000

Я попытался найти настройку в своем DSN, но мне ничего не показалось, почему она не будет работать

Ответы [ 3 ]

2 голосов
/ 10 февраля 2012

Попробуйте заключить подзапросы SELECT в круглые скобки, посмотрите, поможет ли это.

0 голосов
/ 10 февраля 2012

Попробуйте присвоить имена столбцам и поместить объединения в подзапрос:

INSERT INTO Meeting_RFPMeetings (RFP_ID, Meeting_ID, Inserted, Create_UserID)
SELECT [1], [2], [3], [4]
FROM
(
SELECT 21 AS [1], 15835 AS [2], {ts '2012-02-09 14:08:28'} AS [3], 42126 AS [4]

UNION ALL

SELECT 21 AS [1], 15917 AS [2], {ts '2012-02-09 14:08:28'} AS [3], 42126 AS [4]

UNION ALL

SELECT 21 AS [1], 17052 AS [2], {ts '2012-02-09 14:08:28'} AS [3], 42126 AS [4]
) a
0 голосов
/ 10 февраля 2012

Я думаю, что утверждение UNION ALL - проблема. Во-первых, сколько строк вы пытаетесь вставить за раз? Вы пробовали MySQL-совместимые решения, предлагаемые здесь:

Как выполнить 2 или более операторов вставки с использованием CFQuery в Coldfusion?

Какую версию ColdFusion вы используете?

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