我有兩個表在SQL Server 2008 Standard 64位中具有完全相同的模式,但有一個例外:一個是「基本」表,一個用於將地理數據存儲在SQL Server空間格式。我已經包含了SQL來生成表格。SQL Server 2008 Spatial不允許鏈接表
我們有一個任務要求,客戶通過M $ Access前端通過鏈接表訪問這些表(理想情況下只有一個表,帶有M $ Spatial選項)。這個數據庫包含幾個其他表,這些表在Access中通過鏈接表工作得很好,並且dbo.non_spatial也可以正常工作。但是,dbo.spatial在嘗試通過訪問dbo.spatial創建鏈接表時會返回Access「-7477」中的錯誤,並且該表不會鏈接。我已經嘗試了DSN,文件,用戶,系統中的每個可能的選項排列,並且沒有找到錯誤的線索。通過將dbo.spatial重新創建爲dbo.non_spatial,鏈接表工作,這使我相信Microsoft Spatial Schema不可用於Access作爲鏈接表。我找不到任何文件證實這一點。我嘗試了一個視圖,沒有Shape [geometry]列,並且Access可以看到表格鏈接到它,但是需要20-30分鐘才能在Access中填充視圖,而我並不真正有興趣使用視圖作爲解決方法,因爲這會導致必須維護更多空間表的視圖。所以....我如何鏈接到Access中的SQL空間表?
/****** create a non-spatial table******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[non_spatial]
[OBJECTID] [int] NOT NULL,
[FCategory] [nvarchar](16) NOT NULL,
[MapMethod] [nvarchar](4) NOT NULL,
[HError] [nvarchar](50) NOT NULL,
[MapSource] [nvarchar](255) NULL,
[SourceDate] [datetime2](7) NULL,
[EditDate] [datetime2](7) NOT NULL,
[Notes] [nvarchar](255) NULL,
[Species_Community] [nvarchar](50) NOT NULL,
[Location_ID] [uniqueidentifier] NOT NULL,
[Site_ID] [uniqueidentifier] NULL,
[GIS_Location_ID] [nvarchar](50) NULL,
[Meta_MID] [nvarchar](50) NULL,
[X_Coord] [numeric](38, 8) NULL,
[Y_Coord] [numeric](38, 8) NULL,
[Coord_Units] [nvarchar](50) NULL,
[Coord_System] [nvarchar](50) NULL,
[UTM_Zone] [nvarchar](50) NULL,
[Accuracy_Notes] [nvarchar](255) NULL,
[Unit_Code] [nvarchar](12) NULL,
[Loc_Name] [nvarchar](100) NULL,
[Loc_Type] [nvarchar](25) NULL,
[Updated_Date] [nvarchar](50) NULL,
[Loc_Notes] [nvarchar](255) NULL,
[Datum] [nvarchar](5) NULL,
[Watershed] [nvarchar](50) NULL,
[StreamName] [nvarchar](50) NULL,
[NHDReachCode] [nvarchar](14) NULL,
[TOPO_NAME] [nvarchar](50) NULL,
[Trail] [nvarchar](100) NULL,
[Road] [nvarchar](50) NULL,
[Elevation] [numeric](38, 8) NULL,
[LAT] [numeric](38, 8) NULL,
[LON] [numeric](38, 8) NULL,
[Population_ID] [uniqueidentifier] NULL,
[Year_] [nvarchar](4) NULL,
[WGS_DAT] [nvarchar](5) NULL,
[WGS_CS] [nvarchar](5) NULL,
[County] [nvarchar](20) NULL,
[State] [nvarchar](15) NULL,
[IsExtant] [nvarchar](3) NULL,
[IsSenstive] [nvarchar](3) NULL,
[SpeciesName] [nvarchar](125) NULL,
[SpeciesID] [nvarchar](50) NULL,
[Species_ID] [int] NULL,
[Shape] [int] NULL
) ON [PRIMARY]
GO
********************************************************************
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[spatial](
[OBJECTID] [int] NOT NULL,
[FCategory] [nvarchar](16) NOT NULL,
[MapMethod] [nvarchar](4) NOT NULL,
[HError] [nvarchar](50) NOT NULL,
[MapSource] [nvarchar](255) NULL,
[SourceDate] [datetime2](7) NULL,
[EditDate] [datetime2](7) NOT NULL,
[Notes] [nvarchar](255) NULL,
[Species_Community] [nvarchar](50) NOT NULL,
[Location_ID] [uniqueidentifier] NOT NULL,
[Site_ID] [uniqueidentifier] NULL,
[GIS_Location_ID] [nvarchar](50) NULL,
[Meta_MID] [nvarchar](50) NULL,
[X_Coord] [numeric](38, 8) NULL,
[Y_Coord] [numeric](38, 8) NULL,
[Coord_Units] [nvarchar](50) NULL,
[Coord_System] [nvarchar](50) NULL,
[UTM_Zone] [nvarchar](50) NULL,
[Accuracy_Notes] [nvarchar](255) NULL,
[Unit_Code] [nvarchar](12) NULL,
[Loc_Name] [nvarchar](100) NULL,
[Loc_Type] [nvarchar](25) NULL,
[Updated_Date] [nvarchar](50) NULL,
[Loc_Notes] [nvarchar](255) NULL,
[Datum] [nvarchar](5) NULL,
[Watershed] [nvarchar](50) NULL,
[StreamName] [nvarchar](50) NULL,
[NHDReachCode] [nvarchar](14) NULL,
[TOPO_NAME] [nvarchar](50) NULL,
[Trail] [nvarchar](100) NULL,
[Road] [nvarchar](50) NULL,
[Elevation] [numeric](38, 8) NULL,
[LAT] [numeric](38, 8) NULL,
[LON] [numeric](38, 8) NULL,
[Population_ID] [uniqueidentifier] NULL,
[Year_] [nvarchar](4) NULL,
[WGS_DAT] [nvarchar](5) NULL,
[WGS_CS] [nvarchar](5) NULL,
[County] [nvarchar](20) NULL,
[State] [nvarchar](15) NULL,
[IsExtant] [nvarchar](3) NULL,
[IsSenstive] [nvarchar](3) NULL,
[SpeciesName] [nvarchar](125) NULL,
[SpeciesID] [nvarchar](50) NULL,
[Species_ID] [int] NULL,
[Shape] [geometry] NULL,
CONSTRAINT [R26_pk] PRIMARY KEY CLUSTERED
(
[OBJECTID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[spatial] WITH CHECK ADD CONSTRAINT [g6_ck] CHECK (([SHAPE].[STSrid]=(26917)))
GO
ALTER TABLE [dbo].[spatial] CHECK CONSTRAINT [g6_ck]
GO
在Access中,您可以鏈接到non_spatial,但不能鏈接到空間!