Sybase ASE BCP In With Table with No Identity Column

Here's a fun one. I wanted to test some edge case stuff like tables that are not properly defined. When I have a bcp in for a table that has no IDENTITY column, I get an error. Here's the whole flow of things:

My table is defined like this:

            [BOGUSID] INT NOT NULL ,

No pk/identity.

I export its data (few rows ) in bcp with this:

bcp mytester.dbo.XTABLE out XTABLE.bcp -U sa -P mypass -T -n

now, I want to bring it back in using this:

bcp mytester.dbo.XTABLE in MyTable.bcp  -E -n -S Sybase_157 -U sa -P SyAdmin

The result says:

Server Message: Sybase157 - Msg 7756, Level 16, State 1:

Cannot use 'SET IDENTITY_INSERT' for table 'mytester.dbo.XTABLE' because the table does not have the identity property.

I have looked over the bcp page, but can't come up with some way to tell it it's ok to insert without identity column...

Any suggestions experts?
Jay ReddAsked:
Who is Participating?
Joe WoodhouseConnect With a Mentor Principal ConsultantCommented:
This is correct and expected behaviour.

You used the "-E" switch, which means "the values in this BCP file are to be explicitly loaded into the identity column in this table".

You don't have an identity column in your table, hence your error message. "-E" implicitly issues the "set identity_insert on" command at the start of the bcp connection.

Try it without "-E". It should work, although note if your ASE versions are not the same you may run into issues, and if they are not running on the same platform (hardware and operating system) you may also run into (other) issues because "-n" means "native" or platform-dependent mode.
All Courses

From novice to tech pro — start learning today.