2011-12-07 2 views
1

SQL Server 2008 Standard 64 비트에서 동일한 스키마를 가진 두 개의 테이블이 있습니다. 하나는 "기본"테이블이고 다른 하나는 테이블에 지리적 데이터를 저장할 수 있습니다. SQL Server 공간 형식. 나는 테이블을 생성하기 위해 SQL을 포함시켰다.SQL Server 2008 Spatial에서 링크 된 테이블을 허용하지 않습니다.

우리는 클라이언트가 링크 된 테이블을 통해 M $ 액세스 프론트 엔드를 통해 이러한 테이블 (M $ Spatial Option과 함께 한 테이블 이상)에 액세스해야한다는 임무 요구 사항을 가지고 있습니다. 이 데이터베이스에는 링크 된 테이블을 통해 Access에서 잘 작동하는 다른 여러 테이블이 포함되어 있으며 dbo.non_spatial도 정상적으로 작동합니다. 그러나 dbo.spatial에 대한 액세스에서 연결된 테이블을 만들려고 할 때 Access "-7477"에서 오류를 반환하고 테이블이 연결되지 않습니다. DSN, 파일, 사용자, 시스템에서 가능한 모든 순열 옵션을 시도해 보았습니다. 추적을 켜고 오류에 대한 단서는 없습니다. dbo.spatial을 dbo.non_spatial에 다시 작성하면 연결된 테이블이 작동하므로 Microsoft Spatial Schema를 Access에 연결할 수 없다고 생각됩니다. 이 사실을 입증 할 문서를 찾을 수 없습니다. Shape [geometry] 열이없는보기를 시도했는데 Access에서이 테이블에 연결할 테이블을 볼 수 있지만 Access에서 뷰를 채우는 데 20-30 분이 걸렸습니다. 나는보기를 사용하여 해결 방법을 사용하는 데별로 관심이 없습니다. 더 많은 공간 테이블에 대한 뷰를 유지해야하는 결과를 초래할 수 있습니다. 그럼 .... 어떻게 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에 연결할 수 있지만 spatial에 연결할 수 없습니다!

답변

1

밝혀진 바와 같이, 이것은 문서화 된 "기능"입니다! 해결 방법은 기하학 열이없는 뷰를 만들고 뷰에 링크하는 것입니다.

관련 문제