Avatar billede hrytter Nybegynder
02. december 2004 - 11:49 Der er 2 kommentarer

Fejl ved delete af række i MSSQL 7 SP4

Hej.

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

/hrytter
Avatar billede zedios Nybegynder
02. december 2004 - 12:51 #1
Har du mulighed for at vise den SQL du bruger til sletningen?
Avatar billede hrytter Nybegynder
02. december 2004 - 13:09 #2
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.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester