SQL Server cung cấp thủ tục được lưu trữ sp_columns_ex
để cung cấp thông tin cột trong các bảng được tạo sẵn thông qua cơ chế máy chủ được liên kết. Về lý thuyết, bạn có thể sử dụng sp_columns_ex
với một máy chủ được liên kết sử dụng ODBC để truy cập vào kho dữ liệu của bên thứ ba (ví dụ:Salesforce.com thông qua trình điều khiển ODBC Salesforce.com của Easysoft). Trên thực tế, bạn không thể:sp_columns_ex
trả về tập hợp kết quả trống khi được sử dụng với máy chủ được liên kết ODBC và mặc dù các bảng do máy chủ được liên kết tạo sẵn có hiển thị trong SQL Server Management Studio, nhưng các cột thì không.
Theo Microsoft:
"sp_columns_ex trả về tập kết quả trống nếu nhà cung cấp OLE DB của máy chủ được liên kết được chỉ định không hỗ trợ tập hợp hàng COLUMNS của giao diệnIDBSchemaRowset"
Mặc dù không có tuyên bố chắc chắn về việc liệu Nhà cung cấp Microsoft OLE DB cho Trình điều khiển ODBC có hỗ trợ giao diện cụ thể này hay không, nhưng thử nghiệm rộng rãi cả với trình điều khiển Easysoft ODBC và trình điều khiển từ các nhà cung cấp khác cho thấy điều đó không.
Do đó, vấn đề nằm ở giao diện OLE DB của Microsoft chứ không phải với trình điều khiển ODBC cụ thể hoặc phần cuối máy chủ được liên kết.
Tuy nhiên, bạn có thể tạo một bảng SQL Server trống dựa trên các cột trong bảng Salesforce. Bạn có thể sử dụng bảng trống này để xem cách siêu dữ liệu cột Salesforce chuyển sang siêu dữ liệu cột SQL Server. Ví dụ này dành cho bảng Tài khoản và giả sử máy chủ được liên kết có tên là SALESFORCE
:
select * into dbo.NewTable from openquery(SALESFORCE,'select * from Account') where 1 = 0