Jeg har et problem ved sletning af en række i en tabel. Jeg har et job der gennemløber en tabel ud fra nogle givne kriterier, og sletter udvalgte rækker i tabellen, ud fra nøgle værdier.
Det går godt "i starten" men pludselig standser opdateringen/sletningen. Jeg har sat profileren på og observeret at der hvor det går galt, bliver der opbygget et SQL statement med prepare SQL, lavet en "Execution plan", men der bliver aldrig startet en Exec prepared SQL, og heller aldrig commit'et. Istedet bliver der startet med at opbygge en ny "prepare SQL", og så er systemet "stallet".
Tidligere deletes af tilsvarende records, bliver korrekt opbygget med prepare SQL, Execution plan, Exec prepared SQL slutteligt Commit.
Er der nogen der har en ide til hvad der kan være galt. Jeg afvikler på W2K maskine med MSSQL 7 SP 4
Jeg prøver, mit problem er at vi bruger et værktøj der "ligger ovenpå" og genere SQL script'sene til. Her er hvad profileren skriver.
Denne virker : declare @P1 int set @P1=NULL exec sp_prepare @P1 output, NULL, N'SELECT "X_RRNO","AFDNR","GRP","SASNR","LBNR","FALBNR","PER","SIDSTE","VPLVAR","HGR","GKODE","ABCD","LEVNR","OR156","LA156","KB156","SA156","ANTLAG","ANTORD","ANTKOB","ANTSAL","PTRFRM","PTRTBG","X_UPID","X_RRNO" AS RRNO FROM "VARSTR1" WHERE "AFDNR" = 1.0 AND "GRP" = ''245'' AND "SASNR" = ''05'' AND "LBNR" = ''006'' AND "FALBNR" = ''10'' ORDER BY "AFDNR","GRP","SASNR","LBNR","FALBNR","PER","X_RRNO"', 1 select @P1 go
declare @P1 int set @P1=NULL exec sp_prepare @P1 output, N'@P1 decimal(15,0)', N'DELETE FROM "VARSTR1" WHERE "X_RRNO" = @P1 AND "X_UPID" = +0000001', 1 select @P1 go sp_execute 975
Denne virker ikke:
declare @P1 int set @P1=NULL exec sp_prepare @P1 output, NULL, N'SELECT "X_RRNO","AFDNR","GRP","SASNR","LBNR","FALBNR","PER","SIDSTE","VPLVAR","HGR","GKODE","ABCD","LEVNR","OR156","LA156","KB156","SA156","ANTLAG","ANTORD","ANTKOB","ANTSAL","PTRFRM","PTRTBG","X_UPID","X_RRNO" AS RRNO FROM "VARSTR1" WHERE "AFDNR" = 1.0 AND "GRP" = ''245'' AND "SASNR" = ''11'' AND "LBNR" = ''036'' AND "FALBNR" = ''10'' ORDER BY "AFDNR","GRP","SASNR","LBNR","FALBNR","PER","X_RRNO"', 1 select @P1 go declare @P1 int set @P1=NULL exec sp_prepare @P1 output, N'@P1 decimal(15,0)', N'DELETE FROM "VARSTR1" WHERE "X_RRNO" = @P1 AND "X_UPID" = +0000002', 1 select @P1 go
Det kan selvfølgelig være at vores program der genere SQL, laver fejl, men jeg tror det ikke.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.