問: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 ')