簡體   English   中英

Azure SQL表 - > SQL Server視圖 - >鏈接訪問表:無法更新

[英]Azure SQL Table -> SQL Server View -> Linked Access table: can't update

所以我有這個可愛的菊花鏈:

  • Azure SQL數據庫中的表(tblAzure)
  • 本地SQL Server數據庫中的tblAzure視圖(vwSQL)
  • Access中的鏈接表指向vwSQL(tblAccess)

雖然部分單獨工作,但我無法從Access更新Azure表。

數據庫之間的連接可以單獨正常工作。 我可以通過在vwSQL中插入值來更新tblAzure。 我還可以通過鏈接的Access表更新SQL服務器中的表,甚至可以通過創建視圖並將Access鏈接到該視圖來更新表。 我還可以通過在Access中打開的vwSQL看到tblAzure中的值作為鏈接表。

當我嘗試更新或附加鏈接視圖時,這是我得到的錯誤:

ODBC - 在鏈接表'tblAccess'上插入失敗。

[Microsoft] [ODBC SQL Server驅動程序] [SQL Server] OLE DB提供程序“SQLNCLI11”用於鏈接服務器“azw”返回消息“參數不正確:。”。(#7412)
[Microsoft] [ODBC SQL Server驅動程序] [SQL Server]鏈接服務器“azw”的OLE DB提供程序“SQLNCLI11”報告錯誤。 提供者報告一個或多個參數無效。 (#7399)
[Microsoft] [ODBC SQL Server驅動程序] [SQL Server]無法執行該操作,因為鏈接服務器“azw”的OLE DB提供程序“SQLNCLI11”無法啟動分布式事務。 (#7391)

有人見過這樣的事嗎? 我嘗試將鏈接屬性/服務器選項/分發服務器更改為True,但沒有幫助。

基本思想是我需要一個在我們的數據庫中完全同步的表,以及可由Access中的用戶編輯的表。 (不要問,我繼承了太復雜的系統......)


測試腳本

在Azure中:

CREATE TABLE [dbo].[AzureTable](
    [AzureTableID] [int] NOT NULL,
    [SomeText] [nvarchar](50) NULL,
 CONSTRAINT [PK_AzureTable] PRIMARY KEY CLUSTERED ([AzureTableID] ASC)
 WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
GO

INSERT dbo.AzureTable VALUES (1, N'Hello')

在SQL Server中:

(AZW是鏈接的Azure服務器的名稱,HUFU是數據庫)

CREATE VIEW dbo.SQLServerView
AS
SELECT *
FROM AZW.HUFU.dbo.AzureTable
GO

INSERT INTO dbo.SQLServerView values (2,'working')

這也有效。

在Access中,我鏈接視圖(我有許多其他鏈接的表和視圖,它們都工作)。 打開Access鏈接表(指向SQL服務器視圖)它顯示數據,但無法保存修改,顯示上述錯誤。

我現在實際上有一個解決方法,但這件事讓我煩惱,我很想知道這里有什么問題......

我不確定這是否適用於您的情況,但上次我無法從MS Access更新SQL Server視圖時,解決方案是確保代表該視圖的Access鏈接表具有主鍵。

這就是我用來創建PK的方法:

CurrentDb.Execute "CREATE INDEX __uniqueindex ON [" & TableName & "](" & PKFieldName & ")"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM