Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 3.460 pregleda

Najnovija ↓

Store procedure update lock table 17.03.2006. u 13:17 · pre 251 mesec #1
Zdravo,
Imam proceduru koja radi select po tabeli i tog trenutka lockuje tabelu,kada mi pristignu neki podaci ja bih trebao da napravim update polja koji je lock-ovan u predhodnoj proceduri,druge procedura odradi svoje ali ne update-je 'Polje3',pocetnik sam i svaki savet ce mi dobro doci?

Ovo je ta druga procedura koja treba da update-je polja:
CREATE PROCEDURE dbo.UpdatePolje
@sXML NTEXT
AS
DECLARE @idPolje INT
DECLARE @Polje1 INT
DECLARE @Polje2 VARCHAR(16)

DECLARE @iDoc INT

EXEC sp_xml_preparedocument @iDoc OUTPUT,@sXML

IF @@Error <> 0
begin
print @@error
return -1
end


SELECT @idPolje=idPolje,@Polje1 = Polje1,@Polje2 = Polje2
FROM OPENXML(@iDoc,'/root/UpdatePolje',2)
WITH
(
idPolje int 'idPolje',
Polje1 int 'Polje1',
Polje2 VARCHAR(16) 'Polje2'
)

UPDATE Table1
SET Polje3 = 1
WHERE idPolje = @idPolje AND Polje1 =@Polje1 AND Polje2 = @Polje2

EXEC sp_xml_removedocument @iDoc

GO

Hvala unapred!
Re: Store procedure update lock table 27.04.2006. u 22:34 · pre 249 meseci #2
j...ga nemam odgovor ali evo ti nekoliko hintova

koji lock si koristio - tip locka
da li si uradio debug procedure
da li postoji slog u bazi koji sadrzi polje1=....

CREATE PROCEDURE dbo.UpdatePolje
@sXML NTEXT
AS
DECLARE @idPolje INT
DECLARE @Polje1 INT
DECLARE @Polje2 VARCHAR(16)

DECLARE @iDoc INT

EXEC sp_xml_preparedocument @iDoc OUTPUT,@sXML

IF @@Error <> 0
begin
print @@error
return -1
end


SELECT @idPolje=idPolje,@Polje1 = Polje1,@Polje2 = Polje2
FROM OPENXML(@iDoc,'/root/UpdatePolje',2)
WITH
(
idPolje int 'idPolje',
Polje1 int 'Polje1',
Polje2 VARCHAR(16) 'Polje2'
)

PRINT @idPolje
PRINT @Polje1
PRINT @Polje2

UPDATE Table1
SET Polje3 = 1
WHERE idPolje = @idPolje AND Polje1 =@Polje1 AND Polje2 = @Polje2

SELECT @@rowcount

SELECT COUNT(*) FROM Table1 WHERE idPolje = @idPolje AND Polje1 =@Polje1 AND Polje2 = @Polje2

EXEC sp_xml_removedocument @iDoc

GO


probaj ovo pa cemo videti
Potpis
code je haiku
Re: Store procedure update lock table 30.04.2006. u 03:34 · pre 249 meseci #3
Koristi WITH (NOLOCK) opciju

Recimo SELECT * FROM abc WITH (NOLOCK)

Inace ako ti stored procedure ima samo SELECT statements, na pocetku mozes da stavis
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED, onda nemoras da koristis WITH (NOLOCK) opciju.
Potpis
All beer is good. Some beer is better.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme