# SQLCODE -612: Duplicate name

Source: https://wndsoftware.com/mainframe-errors/sqlcode-612

### SQLCODE -612: Duplicate name

SQLCODE -612 (SQLSTATE 42711) means a statement used the same name twice where names must be unique. Most often it's the same column name twice in a CREATE TABLE, CREATE VIEW, CREATE INDEX or ALTER TABLE.


#### Other names for this code

Also written as `SQL -612`, `SQLCODE=-612`, `SQLCODE = -612`, `db2 -612`, `sqlstate 42711`, `SQL0612N`, `is a duplicate name`, `duplicate column name`.


### What it means

Column names have to be unique within a table, a view and an index. The same goes for period names in a table and for the column list of a trigger's UPDATE OF clause. When a statement repeats a name in one of those places, Db2 rejects it with -612. The message gives the repeated name.

Db2 for z/OS lists these cases.

- An index that names the same column more than once.
- A CREATE TABLE or ALTER TABLE that defines two columns, or two periods, with the same name, or a period with the same name as a column.
- A PRIMARY KEY, FOREIGN KEY or UNIQUE list in CREATE TABLE that repeats a column.
- An ALTER TABLE that names the same column in more than one clause. The only allowed pairing is ALTER COLUMN with ADD CHECK CONSTRAINT.
- A view with two columns of the same name.
- A trigger whose UPDATE OF list repeats a column.
- Two arguments with the same name passed to XMLQUERY or XMLEXISTS.
- An include column in a data change statement that clashes with a table column or another include column.


### Common causes

- A CREATE VIEW over a join selects the same column name from two tables, such as A.CUST_NO and B.CUST_NO, without renaming either.
- A column was pasted twice into a long CREATE TABLE.
- An ALTER TABLE changes the same column in two clauses of one statement.
- Generated DDL repeats a column in an index or key list.
- A new column added with ALTER TABLE ADD has the same name as a period, or the other way round.


### How to find the problem

- Take the name from the message and search the statement for it.
- For a view, look at the SELECT list. Two columns with the same unqualified name are the usual cause.
- For ALTER TABLE, check whether the column appears in more than one clause.


### How to fix it

- In a view, rename one of the columns with AS in the SELECT list, or give the view its own column list.
- Remove the duplicate column from the table, index or key list.
- Split an ALTER TABLE that touches the same column twice into separate statements.
- Rerun the corrected statement.


### What it looks like


```text
DSNT408I SQLCODE = -612, ERROR:  CUST_NO IS A DUPLICATE NAME
DSNT418I SQLSTATE   = 42711 SQLSTATE RETURN CODE
```


### IBM documentation

[IBM documentation: -612](https://www.ibm.com/docs/en/db2-for-zos/13.0.0?topic=codes-612). Use the documentation for your installed release.

[Report a correction to WND Software](https://wndsoftware.com/contact#message).

Technical reviewer: [Albert Joseph](https://wndsoftware.com/authors/albert-joseph), WND Software.

Last reviewed 2026-10-18 by the WND Software team. Written in our own words. For the full reference, check IBM’s Db2 for z/OS documentation for your release.


### Related codes

[SQLCODE -601 Object name already exists Read →](https://wndsoftware.com/mainframe-errors/sqlcode-601)
[SQLCODE -203 Ambiguous column reference Read →](https://wndsoftware.com/mainframe-errors/sqlcode-203)
[SQLCODE -206 Column name not valid Read →](https://wndsoftware.com/mainframe-errors/sqlcode-206)
[SQLCODE -104 Illegal symbol in the statement Read →](https://wndsoftware.com/mainframe-errors/sqlcode-104)
[SQLCODE -604 Invalid length, precision or scale Read →](https://wndsoftware.com/mainframe-errors/sqlcode-604)

### Questions


#### Why does my join work as a query but fail as a view?

A query can return two columns with the same name. A view can't, because its columns need unique names. Rename one with AS.


#### What is the difference between -612 and -601?

-612 is a name repeated inside one statement. -601 is a new object whose name is already used by an existing object.


#### Is -612 the same on Db2 for LUW?

Yes. Db2 for LUW reports SQL0612N with SQLSTATE 42711 for a duplicate name.

[Db2 SQLCODEs](https://wndsoftware.com/mainframe-errors/db2-sqlcodes) · [SQLCODE -607](https://wndsoftware.com/mainframe-errors/sqlcode-607) · [SQLCODE -624](https://wndsoftware.com/mainframe-errors/sqlcode-624)

[← All error codes](https://wndsoftware.com/mainframe-errors/)
