ben SQL Server Management Studio'da koştu aşağıdaki sorgu var: Ben aynı masada çalıştırmayı deneyin her sorgu Bu komuttan sonraHata
BEGIN TRANSACTION [Tran1]
BEGIN TRY
UPDATE SomeTable
SET value = 0
WHERE username = 'test'
OR [PR_RequestDate] < DATEADD(day, -2, GETDATE())
INSERT INTO SomeTable (username, value)
VALUES('test', 'test')
COMMIT TRANSACTION [Tran1]
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION [Tran1]
END CATCH
GO
sonsuza çalışır ve ben çalıştığınızda SQL Server Management Studio'yu kullanmak için, işlem yapılmayan işlemlerin olduğuna dair bir uyarı alıyorum.
Sorgumda tam olarak yanlış olan şey nedir ve nasıl düzeltmeliyim?
'INSERT INTOSomeTable (kullanıcı adı, değer) DEĞERLER ('Test', 'test')' o yazım hatası gerçek kodda var ,, toplam mesaj ve TRANCOUNT olsun? Benim tahminim, CATCH (belki yukarıda yazılan yazım hatası) tarafından yakalanmayan kötü bir şeydir, bu yüzden hiçbir zaman işlemeye veya geri dönüşe ulaşamayacaksınız. CATCH her şeyi yakalamıyor (kafa karıştırıcı olabilir). CATCH'nizden sonra bir @@ TRANCOUNT –
eklemeyi deneyin. Seçtiğiniz sorgunun bile sonsuza kadar sürüyor mu? – Venkatesh
Kendinize "yanlış olan" hakkında bilgi saklıyorsunuz. Herhangi bir nedenden dolayı yükseltilmesini istemiyorsanız, yakalama blokunuzda en azından yazdırma hatası mesajı. –