Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Store procedure update lock table

[es] :: MS SQL :: Store procedure update lock table

[ Pregleda: 2699 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kimistan
Mihailo Stanisic
Novi Sad

Član broj: 5921
Poruke: 36
194.106.174.*



Profil

icon Store procedure update lock table17.03.2006. u 12:17 - pre 220 meseci
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!
 
Odgovor na temu

hakiro
Dejan Djenic

Član broj: 27737
Poruke: 80
194.106.186.*



Profil

icon Re: Store procedure update lock table27.04.2006. u 21:34 - pre 219 meseci
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
code je haiku
 
Odgovor na temu

Simke
Marko Simic
Sandfield Associates (Solution
Developer)
Novi Zeland

Član broj: 1158
Poruke: 751
*.bitstream.orcon.net.nz.

ICQ: 71578686
Sajt: www.sandfield.co.nz


Profil

icon Re: Store procedure update lock table30.04.2006. u 02:34 - pre 219 meseci
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.
All beer is good. Some beer is better.
 
Odgovor na temu

[es] :: MS SQL :: Store procedure update lock table

[ Pregleda: 2699 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.