We have a model/script that is set to run on a weekly basis, and is meant to update our parcel records using the parcel records from our county. Our parcels are stored in an SDE geodatabase version 10.2.2. In a nut shell, this model/script follows these steps:
- Download county parcels as a feature class in a file geodatabase from an FTP site into a file geodatabase on our server.
- Rename two of the fields in the county parcel feature class.
- Use
Join Field
to join the county parcel feature class to our parcel feature class in the SDE geodatabase using the parcel ID field. - Run through a number of field calculate steps that recalculates the town parcel ownership field with the data in the county parcel ownership field. This process continues and updates other relevant fields including owner address, assessed value, deed number, etc.
- The last step after completing about 15 field calculates is to delete all the county parcel fields that were added to the town parcel feature class during the
Join Field
.
This may not be the most efficient method but it has worked for us, until now. Twice within the last 6 months I have received an underlying DBMS error
when running the model. This error states that Cannot create a row of size 8063 which is greater than the allowable maximum row size of 8060
. Working with Esri and our IT, we discovered that this error can occur when large, fixed-width columns are dropped, like the ones that are dropped in step 5 of my model. The solution is to simply rebuild the parcel table using a SQL command.
Is there a different way to automate the update of the fields in our parcel feature class using the county parcel feature class without performing the join command?
Removing the join step should remove the need to delete the added fields, which in turn should remove the row size error we are receiving.
Is there a more efficient method we could be using to update our parcel data?
Another factor in this process is that when the join is performed, we never end up with a perfect 1-to-1 match because we maintain some parcel records that the county does not. In this case, during step 4, I use the following expression to make sure that if a join was not found our current data will not be calculated with Null
values from the county; instead our parcel will just keep whatever existing data is currently in that record:
Dim X
if IsNull ([PIN_18]) then
X = [Owner_name]
else
X = [Owner]
end if
Owner_name
refers to our records, while Owner
and PIN_18
refer to the county's records. These fields change accordingly for whatever field is being calculated at the time.