1

When wanting to update tables within a sde gdb, is there a difference between registering as versioned vs registering with the gdb vs registering with sde? I've read the question below and it hints that versioning is a subset of gdb registration.

I am hearing that Unregistering a table as versioned will allow the use of sql to update the table, I assume directly from say SSMS.

We are at ArcGIS for Server 10.1 and Microsoft SQL Server 2008 R2.

Difference between registering with ArcSDE and registering with Geodatabase?

1 Answer 1

2

Absolutely! Registering a table with ArcSDE creates metadata in the SDE user SDE_* tables. Registering a table with the geodatabase does an ArcSDE registration and populates XML metadata in the SDE.GDB_* tables. Registering as versioned registers with the geodatabase and enables the ArcSDE versioning capability on the table. As such, I wouldn't describe versioning registration as a subset -- it's more of a superset, though it is possible to enable versioning on a table without geodatabase registration (just not through the ArcGIS UI or via ArcObjects or Python).

Unregistering a table as versioned removes versioning. You can always update a versioned base table via a SQL client, but doing so will corrupt the version tree of the instance (not exactly a recommended activity). Note that unversioning does not unregister a table -- the cleanest way to do that is to delete the table via ArcGIS (often with a "CREATE TABLE newname AS SELECT * FROM tablename" to make a backup of the table contents first).

2
  • Could you comment on updating a table registered with ArcSDE but not versioned. I found something in the docs about generating objectids but why would this be needed?
    – Justin
    May 14, 2014 at 4:33
  • If a table is registered with ArcSDE and has an SDE-set registered rowid, then a SQL UPDATE should not change the rowid column value. INSERTs should be done through the ArcSDE API to generate correct rowid values, though it is possible to use the documented procedures to preserve rowid integrity via SQL.
    – Vince
    May 14, 2014 at 10:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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