I have a MSSQL 2012 database that I can connect to from ArcGIS using 'Add Database Connection'. In this database I have a spatial table that I can see and open in ArcGIS, however when I create a table using 'SELECT * INTO newtable from..' I cannot see the new table in ArcGIS. I can see the new table in Management studio and it has all the columns and data. The only difference I can see from the old table is that there is no Primary key. If I set this it makes no difference and I still cannot see the table in ArcGIS. Here is the SQL script I'm using:
USE TrafficData;
IF object_id('TrafficData.dbo.a') IS NOT NULL
DROP TABLE TrafficData.dbo.a;
SELECT *
INTO TrafficData.dbo.a
FROM AMBASE_V15LINKS_POLYLINE;
-
4Desktop filters out 'aN', 'dN', 'fN', and 'sN' tables. If you use a less trivial name it will be less likely to be ignored as an implementation support table.Vince– Vince2015年11月03日 13:24:49 +00:00Commented Nov 3, 2015 at 13:24
-
@Vince that looks well worth writing up as a short answer.PolyGeo– PolyGeo ♦2015年11月04日 00:49:41 +00:00Commented Nov 4, 2015 at 0:49
1 Answer 1
When ArcGIS Desktop "opens" a connection, it uses the appropriate database technique to generate a list of tables, but, depending on release and database, it also filters out "hidden" names, among them the "Fn" and "Sn" used for SDEBINARY storage, the "An" and "Dn" used for versioning, the "*_H" archive history tables, and all the other common patterns, using either a complex sequence of AND
terms or local comparison functions on the way to generating the table list.
In your case, you've generated a table named A
, which is close enough to A1
for it to be captured by the filter functions. I would recommend you use longer and/or more descriptive scratch table names, like FOO
or TMP_AMBASE_V15LINKS
. The benefit of using names not likey to conflict with names generated by ArcGIS is a reduced probability of accidently DROP
-ping tables needed to implement the geodatabase (and thereby corrupting your geodatabase instance).