question

Manish 1 avatar image
Manish 1 asked

SQL Server 2005 BCP Function sequence error

Hi,

I have few batch jobs that are running for years on SQL server 2000 successfully. Now we are migrating to SQL server 2005.

the batch file uses BCP query out. Some of the procedures have #temp table. thus in the batch file, we had to use "set fmtonly off". When running these files on SQL server 2005, we get following error:

SQLState = S1010, NativeError = 0 Error = [Microsoft][SQL Native Client]Function sequence error

If I remove "set fmtonly only" BCP does not recognize #temp table.

I cannot post my company code but I wrote this small proc for testing:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO

create procedure dbo.testbcp
as
select top 10 * into #temp from entity

select * from #temp

And bcp out as follows from batch file:

bcp "exec dbo.testbcp" queryout d:\data\a.txt -c -S Server -U LMUsername -P Password

We are in the urgent need. Any help that does not require change in the SP is greatly appreciated.

sql-server-2005bcp
4 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Manish 1 avatar image Manish 1 commented ·
I have applied SP3 on MS SQL Server 2005, that did not resolve this problem but did resolve the same problem with all the procedures where I was not selecting data from #temp table.
0 Likes 0 ·
Fatherjack avatar image Fatherjack ♦♦ commented ·
Are there any parameters used in the query you are passing to BCP?
0 Likes 0 ·
Manish 1 avatar image Manish 1 commented ·
Hi Fatherjack, my procedure is too long, that uses serveral parameters, however, those parameters are giving any problem. Because the code that posted above does not contain any parameters, still gives error. I have simply inserted few rows into a #temp table, and the selecting from that #temp table. BCP in 2005 version does not like select from #temp table.
0 Likes 0 ·
Manish 1 avatar image Manish 1 commented ·
create procedure dbo.testbcp as select top 10 * into #temp from entity select * from #temp bcp "exec dbo.testbcp" queryout d:\data\a.txt -c -S Server -U LMUsername -P Password Just reposted the test code and the BCP statement again for reference.
0 Likes 0 ·
ThomasRushton avatar image
ThomasRushton answered

It might be that the BCP is being thrown by the first "SELECT" statement. Try changing your stored procedure so that the first line is

SET NOCOUNT ON

and then carry on with the rest of your SP as written, ie:

create procedure dbo.testbcp as 
SET NOCOUNT ON
select top 10 * into #temp from entity
select * from #temp
1 comment
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Manish 1 avatar image Manish 1 commented ·
Sorry, no luck, exactly the same result.
0 Likes 0 ·
ruancra avatar image
ruancra answered
Hi Has there been a solution for this? I'm sitting with the same problem and havelooked all over, can't find anything. Thanks Ruan
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.