I've been familiar with ArcObjects' requirements for a unique registered rowid columnsince 8.0 went beta. If you look at my view construction commands, both here and in theold Forums, you'll see that I always take the objectid column from the many side, which circumvents the Knowledge Base issue. Note that it's not ArcSDE which has an issuewith non-unique objectids -- Desktop has to juggle the relationship between attributemetadata and graphics in the display pane; without a unique feature key to associatethem, that task becomes nearly impossible. I just ran a trivial test of 1:M views with ArcSDE 10 (SQL-Server 2008) and ArcGIS 10,and my spatial views continue to function as expected -- C:\Incoming>more 1toMone.txt 1toMone.ctl 1toMmany.txt 1toMmany.ctl | cat
::::::::::::::
1toMone.txt
::::::::::::::
AAAA|box:-10,6,-6,10
BBBB|polygon:6,6,10,6,8,10,6,6
CCCC|circle:0,0,3
DDDD|polygon:-6,-6,-10,-6,-8,-10,-6,-6
EEEE|box:6,-10,10,-6
::::::::::::::
1toMone.ctl
::::::::::::::
COORDSYS GCS_WGS_1984
COORDREF_XY -210,-120,1000000
EFLAGS "na+"
DELIMITERS "|"
REGISTER objectid
COLUMNS
objectid Sequence() - 10 N
keyval String - 4 N
shape Shape - 1 Y
END
::::::::::::::
1toMmany.txt
::::::::::::::
AAAA
BBBB
CCCC
DDDD
EEEE
BBBB
CCCC
DDDD
EEEE
CCCC
DDDD
EEEE
DDDD
EEEE
EEEE
::::::::::::::
1toMmany.ctl
::::::::::::::
REGISTER objectid(SDE)
COLUMNS
objectid Sequence() - 10 N
keyval String - 4 N
END
C:\>asc2sde -o create -l otm_layer,shape -g 5 -f 1toMone.txt
ASCII to ArcSDE 10.0 Loader Utility Thu Dec 02 07:57:28 2010
------------------------------------------------------------------------
Results:
Records read: 5
Rows created: 5
Insert time: 218.00 ms (22.94 TPS)
Elapsed time: 2.95 secs
C:\>asc2sde -o create -t otm_table -f 1toMmany.txt
ASCII to ArcSDE 10.0 Loader Utility Thu Dec 02 07:58:53 2010
------------------------------------------------------------------------
Results:
Records read: 15
Rows created: 15
Insert time: 16.00 ms (937.50 TPS)
Elapsed time: 422.00 ms
C:\>sdetable -o create_view -T otm_view1 -t otm_layer,otm_table -w "otm_table.keyval = otm_layer.keyval" -c otm_table.objectid,otm_layer.keyval,otm_layer.shape
ArcSDE 10.0 for SQL Server Build 775 Fri Sep 17 11:45:27 2010
Attribute Administration Utility
-----------------------------------------------------
Successfully created view otm_view1.
C:\>sdetable -o create_view -T otm_view2 -t otm_layer,otm_table -w "otm_table.keyval = otm_layer.keyval" -c otm_layer.objectid,otm_table.keyval,otm_layer.shape
ArcSDE 10.0 for SQL Server Build 775 Fri Sep 17 11:45:27 2010
Attribute Administration Utility
-----------------------------------------------------
Successfully created view otm_view2.
C:\>sdequery -t otm_view1
ArcSDE 10.0 Generic Query Tool Thu Dec 02 08:04:56 2010
------------------------------------------------------------------------
1
objectid: 1
keyval: AAAA
shape: Area shape (1 part, 5 vertices)
2
objectid: 2
keyval: BBBB
shape: Area shape (1 part, 4 vertices)
3
objectid: 3
keyval: CCCC
shape: Area shape (1 part, 37 vertices)
4
objectid: 4
keyval: DDDD
shape: Area shape (1 part, 4 vertices)
5
objectid: 5
keyval: EEEE
shape: Area shape (1 part, 5 vertices)
6
objectid: 6
keyval: BBBB
shape: Area shape (1 part, 4 vertices)
7
objectid: 7
keyval: CCCC
shape: Area shape (1 part, 37 vertices)
8
objectid: 8
keyval: DDDD
shape: Area shape (1 part, 4 vertices)
9
objectid: 9
keyval: EEEE
shape: Area shape (1 part, 5 vertices)
10
objectid: 10
keyval: CCCC
shape: Area shape (1 part, 37 vertices)
11
objectid: 11
keyval: DDDD
shape: Area shape (1 part, 4 vertices)
12
objectid: 12
keyval: EEEE
shape: Area shape (1 part, 5 vertices)
13
objectid: 13
keyval: DDDD
shape: Area shape (1 part, 4 vertices)
14
objectid: 14
keyval: EEEE
shape: Area shape (1 part, 5 vertices)
15
objectid: 15
keyval: EEEE
shape: Area shape (1 part, 5 vertices)
15 rows found in 375.00 ms
C:\>sdequery -t otm_view2
ArcSDE 10.0 Generic Query Tool Thu Dec 02 08:05:04 2010
------------------------------------------------------------------------
1
objectid: 1
keyval: AAAA
shape: Area shape (1 part, 5 vertices)
2
objectid: 2
keyval: BBBB
shape: Area shape (1 part, 4 vertices)
3
objectid: 3
keyval: CCCC
shape: Area shape (1 part, 37 vertices)
4
objectid: 4
keyval: DDDD
shape: Area shape (1 part, 4 vertices)
5
objectid: 5
keyval: EEEE
shape: Area shape (1 part, 5 vertices)
6
objectid: 2
keyval: BBBB
shape: Area shape (1 part, 4 vertices)
7
objectid: 3
keyval: CCCC
shape: Area shape (1 part, 37 vertices)
8
objectid: 4
keyval: DDDD
shape: Area shape (1 part, 4 vertices)
9
objectid: 5
keyval: EEEE
shape: Area shape (1 part, 5 vertices)
10
objectid: 3
keyval: CCCC
shape: Area shape (1 part, 37 vertices)
11
objectid: 4
keyval: DDDD
shape: Area shape (1 part, 4 vertices)
12
objectid: 5
keyval: EEEE
shape: Area shape (1 part, 5 vertices)
13
objectid: 4
keyval: DDDD
shape: Area shape (1 part, 4 vertices)
14
objectid: 5
keyval: EEEE
shape: Area shape (1 part, 5 vertices)
15
objectid: 5
keyval: EEEE
shape: Area shape (1 part, 5 vertices)
15 rows found in 250.00 ms
C:\>
The first attachment is a JPG of an identify on the lower-left triangle from using ArcSDE 10 with SQL-Server.I repeated the process with ArcSDE 9.3.1sp2 on Oracle 10.2.0.3, and got the same behavior (second image). If a spatial view with a unique registered rowid column doesn't behave properly while using a supporteddatabase build, please bring it to the attention of Tech Support. They'll need a copy of your data (or thesmallest sanitized subset thereof which still exhibits the issue) to attempt reproduction and resolution. BTW: Robert - You probably don't need to place the layer in load_only I/O mode before a truncate and append -- the 'init' option of 'sdeimport' [nsic] does the truncate, load_only, insert, and normal_io in one command. - V