In-house we have an ArcGIS Server license that I am somewhat familiar with, and a license for SQL Server. I'm looking for some examples of existing web maps that use ArcGIS Server for the display of geographic data and SQL Server (Spatial) for storage. I've looked into this but haven't found any good/recent examples of this combination, especially which utilize an editing interface for modifying the stored geometries.

I'm looking for a few examples and links to documentation that will help me build a good understanding of the capabilities and requirements of these software packages before embarking on the project.

  • Samples are hard to come by with specfic documentation. We have built here in my shop (Washington State Department or Revenue) a application for Tax-Payer/Companies to report assets and locations that uses just that platform. We continue to expand on that project and are pushing on now with follow-on tasks. We are using SQL2008 (not R2) and AGS10 with the JSAPI. I don't have a URL to share since it is a secure system. But am happy to answer questions and provide feedback.
    – D.E.Wright
    Jan 5, 2012 at 19:20
  • This forum post is worth reading over when thinking about SQL Server 2012, ArcGIS 10.1, SDE, Server, etc.: forums.arcgis.com/threads/…? Jun 5, 2013 at 16:57

2 Answers 2


In a former life, I had a ArcGIS Server web app (WebADF) that needed to display updated line data from a non-versioned featureclass in SDE every 15 minutes. The source data was in a non-spatial SQL Server 2008 table in another database owned by another department. Their application pulled data down from a web service every 15 minutes. I needed to push that data, which is basically a ton X/Y point data that represented line features, from their table up to my line featureclass.

I ended up building a .NET standalone executable that called a pretty involved stored procedure which queried their database for new data and then, utilizing SQL Spatial methods, pushed that point data (by building lines from the points) into my non-versioned SDE featureclass which used the SQL Spatial geometry datatype to store the spatial data. We had a job scheduler that would kick off the .NET app every 15 minutes. If data was there to pick up in the remote database, it got processed; if no data was there, it just exited.

Worked great and was super fast. This allowed us to update the data behind the web app without having to stop/start/bounce the map service. Since we were bypassing the SDE stack, it didn't matter if the featureclass was locked up by the service or if someone had it opened in ArcMap - when the panned/zoomed/refreshed in any application, they got the fresh data as it came in.

Some of the caveats to look out for:

  • Make sure your data is OGC-valid (STIsValid() method), or you can crap out your entire featureclass. Never found a elegant way to handle this because we didn't want to alter the data, so we just logged the error and looked into them on a case by case basis, which there weren't many
  • Inserting and updating are two different calls, so you have to keep track of some sort of record ID - if it's already there then you update, if not you insert - all do-able in the stored procedure

Beginning Spatial with SQL Server 2008 is a good book to start out with as well.

  • +1 @ Chad - thanks for the thorough overview, sounds like an interesting project! I'll keep your caveats in mind.
    – Radar
    Jan 6, 2012 at 16:57

As long as your spatial data and/or view can be consumed in ArcMap, it can be served up via ArcGIS Server. We are in the same boat, and wanting to build custom 'feature classes' or layers using SQL joins and views. Once they are properly built and formatted, and can be viewed/consumed in ArcMap, ArcGIS server can serve them up (as long as you have created a link to that data store in the ArcGIS Server properties).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.