After upgrading your Teradata database version, an error might occur in SAS code that previously worked.
The SAS log contains the following when this issue occurs:
1 LIBNAME libref TERADATA teradata-connection-options ;
2 PROC APPEND BASE = libref.teradata-table-name ( MULTILOAD=YES UPSERT=YES UPSERT_WHERE=(column-name-1, ... , column-name-n )
3 DATA = sas-table-name ( keep = column-name-1, ... , column-name-n) force ;
4 run;
NOTE: Appending SAS-TABLE-NAME to LIBREF.teradata-table-name.
NOTE: There were nnn observations read from the data set SAS-TABLE-NAME.
NOTE: nnn observations added.
NOTE: The data set LIBREF.teradata-table-name has . observations and nn variables.
ERROR: Teradata connection: Object 'teradata-table-name_WT' does not exist. Correct error and restart as an APPEND process with option
TPT_RESTART=YES. Since no checkpoints were taken, if the previous run used FIRSTOBS=n, use the same value in the restart.
NOTE: Statements not processed because of errors noted above.
NOTE: PROCEDURE APPEND used (Total process time):
real time 3.75 seconds
cpu time 0.07 seconds
In addition to the SAS log messages, the failure leaves behind the Teradata work and error tables.
Note that the Teradata work table *_WT might contain different casing than the Teradata error tables. For example, you might expect to see "teradata-table-name_WT", but "TERADATA-TABLE-NAME_WT" is the temporary Teradata table that is created.
This issue occurs only when your Teradata table contains an Identity column. The Teradata table DDL displays this as "GENERATED BY DEFAULT AS IDENTITY".
This issue was introduced by changes to Teradata. (Teradata reference DR199741.)
By default, the Teradata Database automatically creates work tables and error tables in the working database (if specified). When you do not use SAS Data Set options to specify work or error table names, TPT generates those table names.
To work around this issue, explicitly qualify the work or error table names with a database name. (That is, SAS Data Set options TPT_WORK_TABLE, TPT_ERROR_TABLE_1, TPT_ERROR_TABLE_2, and TPT_LOG_TABLE.)
Here is an example:
TPT_WORK_TABLE=database.table_name_WT
Teradata plans to release a TTU update in June 2026 to allow TPT to qualify the work or error table names with a database name if those tables have not already been qualified with a database.