2016-04-14 34 views
0

AS400'te bir DB2 veritabanımız var. Bağlantılı bir sunucu eklendi, hepsi iyi gitti, ancak bazı sorgular yaparken bile, bazen masa kilitli. SQL Server'da tablo ipucu hakkında düşünmek, bağlantılı sunucu sorgusunu (örneğin, * dan * seç) destek masası ipucunu mu?Bağlantılı sunucu sorgusunda tablo ipucu

cevap

0

Şüpheli, ama emin değilim.

Openquery() veya 4 bölüm ad kullanıyor musunuz?

şöyle 4 yarı adlarını kullanarak bir sorgu:

select * from LNKSVRNAME.IBMINAME.MYSCHEMA.MYTABLE where somecolumn = '00335'; 

MYTABLE tüm satırlarını geri çeker ve MS SQL Server WHERE filtreleme yapar.

select * from openquery(LNKSVRNAME, 'select * from MYSCHEMA.MYTABLE where somecolumn = ''00335'''); 

IBM i için sorguyu gönderir ve MyTable sadece eşleşen satırları MS SQL Server geri çekilir: openquery() şöyle kullanarak aksine

.

Tablo yalnızca kilitliyse, yapabileceğiniz fazla bir şey yok. Ancak, satır kilitlerine giriyorsanız. Sen IBM için aşağıdaki DB2 bakmak isteyebilirsiniz i hükümler

  • FOR READ ONLY
  • SKIP LOCKED DATA veya USE CURRENTLY COMMITTED veya WAIT FOR OUTCOME

böyle Yani bir şey:

select * from openquery(LNKSVRNAME, 'select * from MYSCHEMA.MYTABLE where somecolumn = ''00335'' FOR READ ONLY USE CURRENTLY COMMITTED'); 

Not ise aslında bir AS/400,ile konuşuyorsunuzsenin sahip olabileceğin her şey. Ancak, IBM'in nispeten yeni bir sürümünü çalıştıran nispeten yeni bir IBM POWER System ile konuşuyorsanız, gösterdiğim concurrent-access-resolution tümcecikleri kullanılabilir olmalıdır.