2017-04-16 71 views
0

我試過下面這個小腳本。試圖從Access導入數據到SQL Server

USE [Test] 
GO 
/****** Object: StoredProcedure [dbo].[Import_From_Access] Script Date: 4/16/2017 5:13:19 PM ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

ALTER PROCEDURE [dbo].[Import_From_Access] 
AS 
BEGIN 


SET NOCOUNT ON; 

EXEC sp_addlinkedserver 
@server = 'EXCEL-PC\SQLEXPRESS', 
@provider = 'Microsoft.Jet.OLEDB.4.0', 
@srvproduct = 'OLE DB Provider for Jet', 
@datasrc = 'C:\Users\Excel\Desktop\Coding\Microsoft Access\Northwind.mdb' 

EXEC sp_addlinkedsrvlogin 'EXCEL-PC\SQLEXPRESS', FALSE, Null, Admin, Null 

END 

然後運行它,我想這:

SELECT * 
FROM OPENQUERY('EXCEL-PC\SQLEXPRESS', 'SELECT * FROM Table1') 

現在,我認爲這會工作,但我收到一條錯誤信息: 消息102,15級,狀態1,行6 「EXCEL-PC \ SQLEXPRESS」附近的語法錯誤。

我在想這個問題可能是' - '字符或'\'字符。不幸的是,這是服務器機器的名稱,它可能不會改變。如果有這種事情的解決辦法,或者我只是運氣好這種設置?

謝謝大家!

回答

1

EXCEL-PC\SQLEXPRESS不是一個字符串:

試試這個:

SELECT * 
FROM OPENQUERY([EXCEL-PC\SQLEXPRESS], 'SELECT * FROM Table1') 
+0

哦,我,我太愚蠢有時。是的,是的,是的,基本上工作。我只是跑這個:SELECT * FROM OPENQUERY([EXCEL-PC \ SQLEXPRESS],'SELECT * FROM Table1') 現在,我收到此消息: Msg 7411,Level 16,State 1,Line 5 Server' EXCEL-PC \ SQLEXPRESS'未配置爲數據訪問。 – ryguy72

+0

實際上,我認爲這是因爲Access是32位而SQL Server是64位的。我認爲這是問題。下面的鏈接應該有助於解決問題。 https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=13255 – ryguy72

相關問題