【发布时间】:2012-02-21 05:13:51
【问题描述】:
给定以下表格:
CREATE TABLE #USGS_24K_TOPOMAP_BOUNDARIES(
[OBJECTID] [int] NOT NULL,
[AREA] [numeric](38, 8) NULL,
[PERIMETER] [numeric](38, 8) NULL,
[QD24K_GRSM] [numeric](38, 8) NULL,
[QD24K_GR_1] [numeric](38, 8) NULL,
[QUADID] [numeric](38, 8) NULL,
[CENTLAT] [numeric](38, 8) NULL,
[CENTLONG] [numeric](38, 8) NULL,
[NAME] [nvarchar](35) NULL,
[STATE] [nvarchar](2) NULL,
[LATLONG] [nvarchar](9) NULL,
[OHIO_INDEX] [nvarchar](8) NULL,
[GRID60] [nvarchar](5) NULL,
[Reviewed] [int] NULL,
[Corrected] [int] NULL,
[Verified] [int] NULL,
[GlobalID] [uniqueidentifier] NOT NULL,
[SHAPE] [geometry] NULL)
和
CREATE TABLE #tbl_locations(
[OBJECTID] [int] NOT NULL,
[FCategory] [varchar](16) NULL,
[MapMethod] [varchar](4) NULL,
[HError] [varchar](50) NULL,
[MapSource] [varchar](255) NULL,
[SourceDate] [datetime2](7) NULL,
[EditDate] [datetime2](7) NULL,
[Notes] [varchar](255) NULL,
[Species_Community] [varchar](50) NULL,
[Location_ID] [uniqueidentifier] NOT NULL,
[Site_ID] [uniqueidentifier] NULL,
[GIS_Location_ID] [varchar](50) NULL,
[Meta_MID] [varchar](50) NULL,
[X_Coord] [numeric](38, 8) NULL,
[Y_Coord] [numeric](38, 8) NULL,
[Coord_Units] [varchar](50) NULL,
[Coord_System] [varchar](50) NULL,
[UTM_Zone] [varchar](50) NULL,
[Accuracy_Notes] [varchar](255) NULL,
[Unit_Code] [varchar](12) NULL,
[Loc_Name] [varchar](100) NULL,
[Loc_Type] [varchar](25) NULL,
[Updated_Date] [varchar](50) NULL,
[Loc_Notes] [varchar](255) NULL,
[Datum] [varchar](5) NULL,
[Watershed] [varchar](50) NULL,
[StreamName] [varchar](50) NULL,
[NHDReachCode] [varchar](14) NULL,
[TOPO_NAME] [varchar](50) NULL,
[Trail] [varchar](100) NULL,
[Road] [varchar](50) NULL,
[Elevation] [numeric](38, 8) NULL,
[LAT] [numeric](38, 8) NULL,
[LON] [numeric](38, 8) NULL,
[Population_ID] [uniqueidentifier] NULL,
[Year_] [varchar](4) NULL,
[WGS_DAT] [varchar](5) NULL,
[WGS_CS] [varchar](5) NULL,
[County] [varchar](20) NULL,
[State] [varchar](15) NULL,
[IsExtant] [varchar](3) NULL,
[IsSenstive] [varchar](3) NULL,
[SpeciesName] [varchar](125) NULL,
[SpeciesID] [varchar](50) NULL,
[Species_ID] [int] NULL,
[SHAPE] [geometry] NULL)
我想用#USGS_24K_TOPOMAP_BOUNDARIES.Name 填充#tbl_locations.Topo_Name。换句话说,我试图确定一个点所在的地形图的名称,并以编程方式将其写入点表。理论上看起来很简单,但 tbl_locations 包含数千个点,这些点可能出现在 36 个地形图多边形边界之一中。
我已经走到了这一步
Select NAME, Loc_Name, Location_ID
From #USGS_24K_TOPOMAP_BOUNDARIES a, #TBL_LOCATIONS b
where a.Shape.STContains(b.Shape)=1
它返回一个整洁的表,我可以通过连接交叉返回到 tbl_locations,但我坚持通过单个查询更新语句完成此操作,并且我有许多类似的点-多边形关系我想以这种方式自动化(例如,哪个分水岭,县,州等......点出现在)。谢谢!
【问题讨论】:
-
我想知道是否应该将其输出到视图然后使用视图执行联合?谢谢
标签: sql sql-server-2008 spatial