2013-06-26 50 views
0

我需要從Access 97包裝數據庫(圍繞舊的悖論表)讀取數據並將其插入到SQL Server 2012中。到目前爲止,我發現的最簡單的方法是在Access中編寫管道數據庫它檢索訪問數據並將其插入到鏈接的SQL Server表中。任何想如何更好地管理這一點,將不勝感激。訪問97和SQL Server

我已經鏈接了一個SQL Server表,但它不會讓我插入數據。鏈接表在模式「推送」中稱爲「學生」,這是我鏈接到的表。但是,當我插入數據時,我得到的錯誤是'找不到對象dbo.students'。用於連接的用戶帳戶(用戶也稱爲'push')擁有模式'push'並且具有默認模式'push' - 所以我不知道它爲什麼試圖連接到dbo。在Access中的MSysObjects表中,鏈接表的ForeignName設置爲push.students。當我打開鏈接表時,我可以看到來自push.students的正確數據集。任何人都可以幫忙

回答

0

好吧,事實證明,這是我自己的錯。

對於任何有類似(似乎)問題的人來說,原因是我在push.students上設置了一個觸發器,用於將合併(除其他事項外)運行到dbo.students。很顯然,觸發器是由'推'用戶執行的,誰的不是有權修改dbo.students - 因此失敗。刪除了觸發器,它全部排序!

UPDATE: 我仍然需要觸發,所以我將它設置爲不同的用戶下運行 - 它有權這樣做需要做的事情DBO帳戶。這樣就避免了給開塗滿權限來限制我的「推」賬戶污穢:

CREATE TRIGGER <schema_name>.<trigger_name> 
    <schema_name>.<table_name> WITH EXECUTE AS <user_name> 

等等等等,希望幫助別人!