一時テーブルProduct
を使用してSQL Server 2016データベースを作成しました。私はリンクテーブルを介してAccessデータベースからテーブルを更新したいと思います。SQL Server 2016一時テーブルをAccessから更新することはできますか?
CREATE TABLE [dbo].[Product]
(
[Product] [uniqueidentifier] NOT NULL,
CONSTRAINT PK_Product_Product PRIMARY KEY CLUSTERED (Product),
[Name] [nchar](50) NOT NULL,
CONSTRAINT [AK_Product_Name] UNIQUE([Product line], [Name]),
[Status] [uniqueidentifier] NOT NULL,
SysStartTime datetime2 GENERATED ALWAYS AS ROW START NOT NULL,
SysEndTime datetime2 GENERATED ALWAYS AS ROW END NOT NULL,
PERIOD FOR SYSTEM_TIME (SysStartTime, SysEndTime)
) ON [PRIMARY] WITH
(
SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.ProductHistory)
)
GO
クエリ:テーブルは次のように定義されて
このエラーのエラーメッセージがない:これを行うにしようとすると、アクセスが
予約エラー(-7776)が報告します
UPDATE Product SET Status = (SELECT [Product status] FROM [Product status] WHERE [Name] = 'Announced') WHERE [Name] = 'A300';
はエラーなしで成功し、アクセステーブルに表示されます。更新は履歴テーブルに正しく反映されます。
バックエンドの変更によって問題が発生したものの、効果がない場合に有効な時刻の列が表示されないようにしました。
Product
とProduct status
の両方の表には最小限のデータが含まれています。これを機能させるための具体的な方法はありますか、このシナリオはサポートされていませんか?
一時テーブルへのODBCリンクは、SQL Serverの最新のODBCドライバを使用していますか? –
問題のある列を使わずにこのテーブルのビューを作成し、Accessのリンクをリンクしてそこのレコードを更新しようとするとよいでしょう。 – Andre
@Gord SQL Server 2016の新しいインストールでインストールされた「SQL ServerネイティブクライアントRDA 11.0.」を使用します。 – Pekka