2013-09-06 19 views
6

SQL Server 2008'de saklı yordamı çağırmaya çalışıyorum ve getirilen verileri yerel bir geçici tabloya depolamıyorum. Bunu çalıştırmayı denediğinizdeBağlantılı sunucu için OLED DB sağlayıcısı "SQLNCLI" dağıtılmış bir işlem başlatılamadı

, aşağıdaki hatayı alırsınız: aşağıdaki gibi

The operation could not be completed because OLe DB provider "SQLNCLI" for linked server was unable to begin a distributed transaction

Benim kodudur:

create table #temp(
    col1 as int, 
    col2 as varchar(50) 
) 

insert into #temp 
exec [192.168.0.9].[db1].[dbo].[tablename] @usr_id=3 

cevap

3

bağlantılı sunucu hataları nedeniyle olan bir dağıtılmış hareket başlamadan edemedi MSDTC'de sorunlar (MS dağıtılmış işlem koordinatörü). Sorunlar bir dizi problemden kaynaklanabilir. MSDTC çalışmıyor, güvenlik duvarı ve diğerleri tarafından engelleniyor.

Eğer bir işlem gerektiriyorsa, bu problemi çevresel olduğundan çok fazla kendiniz ayıklamak zorundasınız. Bir işlem gerektirmekten kaçınmak için yeniden yazabilirseniz hayatınız daha basit olacaktır. Sadece bir MSDTC sorunu olduğundan emin olmak için MSDTC'ye bağlı olmayacak basit bir sorgu yazın. Örneğin. Bu çalışırsa

create table #temp(col1 as int, col2 as varchar(50)) 

insert into #temp 
select col1, col2 from [192.168.0.9].[db1].[dbo].[tablename] where usr_id=3 

, onun kesinlikle MSDTC (ve belki bir önlenebilir sorun)

- Bu eklendi. MSDTC hata ayıklama için biraz zaman harcadı. http://www.mssqltips.com/sqlservertip/2083/troubleshooting-sql-server-distributed-transactions-part-1-of-2/ togehter gibi http://www.sqlwebpedia.com/content/msdtc-troubleshooting oldukça iyiydi onlar MSDTC sorunları (ve diğerleri de) için hata ayıklamak zorunda hatırlıyorum hemen hemen her şeyi kapsamaktadır.

7

Sen 'false' için 'Uzak yordam işlem promosyon' sunucu seçeneği ayarlayarak bağlantılı sunucu için dağıtılmış hareketleri kullanarak önleyebilirsiniz: Bu benim için çalıştı

EXEC sp_serveroption 'servername', 'remote proc transaction promotion', 'false' 

Here's the same issue

+0

! Diğer cevaba bağlandığınız için teşekkür ederiz. Özniteliği ayarlamak için dezavantajı ne oldu merak ettim. Hem yerel hem de bağlantılı sunuculardaki verileri değiştirmediğimi ve daha sonra tüm bu işlemleri geri almam gerektiğini düşündüğüm sürece, iyi olmalıyım diye düşünüyorum. – MikeTeeVee

+0

Lifesaver !! ....... –

İlgili konular