2017-04-16 12 views
0

以下、この小さなスクリプトを試しました。私はそれが仕事だろうと思った、今アクセスからSQL Serverにデータをインポートしようとしています

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

が、私は読み込みエラーメッセージが出てい::

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 

次に、それを実行するために、私はこれを試し メッセージ102、レベル15、状態1、行6 'EXCEL-PC \ SQLEXPRESS'の近くの構文が正しくありません。

問題は「 - 」文字または「\」文字である可能性があります。残念ながら、これはサーバーマシンの名前であり、おそらく変更されることはありません。この種のものの回避策がある場合、またはこの種類の設定で幸運を逃しているのでしょうか?

ありがとうございます!

答えて

1

EXCEL-PC\SQLEXPRESSは文字列リテラルではありません。私のああ、私は時々そうダムだ

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

はこれを試してみてください。はい、はい、はい、それは基本的に働きました。 メッセージ7411、レベル16、状態1、行5 サーバー ':私はこのメッセージを取得し、今OPENQUERY([EXCEL-PC \ SQLEXPRESS]、 '表1 SELECT * FROM')FROM をSELECT * :私はちょうどこれを実行しましたEXCEL-PC \ SQLEXPRESS 'はDATA ACCESS用に構成されていません。 – ryguy72

+0

実際には、Accessは32ビットで、SQL Serverは64ビットなので、これが起こっていると思います。私はそれが問題だと思う。この問題を解決するには、下のリンクを参考にしてください。 https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=13255 – ryguy72

関連する問題