問:SQL Server應該怎樣訪問Sybase資料庫的表?
答:具體方法如下:
1: 安裝Sybase用戶端
版本的要求:
Sybase Client 11.9.2 for NT
1.1:安裝完成後,運行開始->程式->Sybase->Dsedit
1.2:選擇菜單的'Server Object',-> 'Add' 輸入服務名 比如 1.70
1.3:然後在Server列表中選擇'1.70',雙擊右邊的對話方塊server address欄,在Network Address Attribute對話方塊中 選擇add 填入ip地址,比如132.228.1.70,4300,ok 確定
1.4:選擇工具列的Ping Server按鈕測試是否能連通伺服器 (紅色的類似閃電的按鈕)
2:在ODBC中建立DSN>
管理工具->資料來源ODBC
建立一個系統DSN,名稱設為 1.70
在建立新資料來源對話方塊中選擇'Sybase System11'資料來源驅動程式,
General屬性的DSN datasouce name: 填入 1.70,
database: 填入sybase資料庫名
確定儲存
3:建立連結的伺服器
企業管理器->安全性->建連結的伺服器->建立連結的伺服器
3.1:常規標籤欄目中
名稱Sybase,
伺服器類型選其他資料來源,在提供者的名稱中選擇
Microsoft OLE DB Provider FOR ODBC
資料來源:填入DSN名字 1.70
3.2:安全性欄目中
本地登陸填入sa
遠端使用者和遠程密碼填入sybase的使用者名稱和密碼
3.3:使用此安全上下文建立串連
遠程登陸 輸入sybase的使用者名稱和密碼
使用密碼 輸入密碼
確定儲存
4: 用sa身份登陸查詢分析器
執行以下sql語句就能查出sybase資料
select * from 連結的伺服器名(本例子為sybase).sybase的資料庫名.dbo.sybase的表名
注: 如果在執行查詢時發現這個問題: 連結的伺服器 "sybase" 的 OLE DB 提供者 "MSDASQL" 為列提供的中繼資料不一致。
解決方案:: 不要直接用下面這種語句
select * from sybase.dbname.dbo.tablename
只需要換個語句,就能解決問題。具體語句如下:
select * from openquery(sybase,'select * from dbname.dbo.tablename ')