Consultor Eletrônico



Kbase P111310: SQL-92: Server crash on repeat of column name in INSERT INTO statement.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   04/03/2009
Status: Unverified

SYMPTOM(s):

Server crash on repeat of column name in INSERT INTO statement.

Server crash on INSERT INTO statement when the same field is assigned more than once.

Server crash occurs executing code similar to:
INSERT INTO myTable(F1, F2, F3, F1) VALUES (1, 'two', 3, 1);

Database log file includes following information:
SQLSRV2 1: SQL Server 10.0B.03 started, configuration: "sports2000.virtualconfig"
SQLSRV2 1: "sports2000" started on port 3000, pid 1920 (0x00000780).
SQLSRV2 1: Thread stack size: 1024000 (bytes).
SQLSRV2 1: DLC from ENVIRONMENT VARIABLE is: C:\Progress\OPENED~1
SQLSRV2 1: WRKDIR from ENVIRONMENT VARIABLE is: C:\OpenEdge\WRK100B\
SQLSRV2 1: JDKHOME from ENVIRONMENT VARIABLE is: C:\Progress\OpenEdge100B\jdk
SQLSRV2 1: JREHOME from ENVIRONMENT VARIABLE is: C:\Progress\OpenEdge100B\jdk\jre
SQLSRV2 1: CLASSPATH from ENVIRONMENT VARIABLE is: C:\Progress\OPENED~1\java\prosp.jar;C:\Progress\OPENED~1\java\jdbc.jar;C:\Progress\OPENED~1\java\prosp.jar;C:\Progress\OPENED~1\java\jdbc.jar;C:\OpenEdge\WRK100B;C:\Progress\OpenEdge100B\java\jdbc.jar;C:\Progress\OpenEdge100B\java\prosp.jar;C:\Progress\OpenEdge100B\jre\bin;C:\Progress\OpenEdge100B\jdk\bin;C:\Progress\OpenEdge100B\jdk\lib
SQLSRV2 1: PROSQL_LOCKWAIT_TIMEOUT value is: 5 seconds
SQLSRV2 1: Login usernum 24, remote SQL client. (8873)
SQLSRV2 1: Usr 24 set name to yshanshi. (7129)
BROKER 0: Disconnecting client 24 of dead server 1. (2526)
BROKER 0: Begin transaction backout. (2252)
BROKER 0: Transaction backout completed. (2253)
BROKER 0: Disconnecting dead server 1. (2525)

SQL-92

CAUSE:

An attempt to assign the same field more than once in the same INSERT INTO statement.

FIX:

Do not assign any column (field) more than once with the INSERT INTO statement. Assign the desired columns only once per INSERT INTO statement:
INSERT INTO myTable(F1, F2, F3) VALUES (1, 'two', 3);