2011-12-07 86 views
1

我有兩個表在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,但不能鏈接到空間!

回答

1

事實證明,這是一個記錄的「功能」!解決方法是創建一個沒有幾何列的視圖,並鏈接到視圖

相關問題