2014-06-23 58 views
1

我使用下面的查询在一个外部文件中写入数据:BCP全球##临时表中的错误

declare @sql varchar(8000); 
select @sql = 'bcp tempdb.##hmscript out 
F:\HMS\test.txt -c -t, -T -S GIT2B-01\MON' 
select @sql 
exec master..xp_cmdshell @sql; 

当测试在CMD窗口中的BCP,我发现了以下错误:

SQLState = 37000,NativeError = 11525 错误= [Microsoft] [SQL Server Native Client 11.0] [SQL Server]由于语句'select * from ## hmscript'使用临时表,所以元数据可能不会被确定为 。

有人有这个解决方案吗?

由于提前,

大卫

+0

为什么使用全局##临时表?由于这有效地将并发性降低到1,只需使用常规用户表并在完成后将其删除。 –

+0

这是我正在考虑的另一种选择,但我猜想我的好奇心采取了上风,我想尝试一些东西:)但是看到使用全局临时表的操作非常麻烦,我将切换到像您这样的普通表说 –

+0

运行此脚本时是否存在## hmsscript表?由于##前缀表示tempdb,因此应省略tempdb数据库限定符。 –

回答

0

如果表不存在,你会得到这个错误。

创建表格,然后再试一次,你应该得到你想要的。