首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server用户定义的表类型和BCP导出

Server用户定义的表类型和BCP导出
EN

Stack Overflow用户
提问于 2017-08-14 17:15:14
回答 2查看 239关注 0票数 1

我似乎不能让这个剧本起作用。我得到了以下错误:

Msg 137、级别16、状态1、第14行必须声明标量变量"@TVP_GLICU“。

有人能告诉我我错过了什么吗?

代码语言:javascript
复制
Declare @TVP_GLICU TVP_GLICU 
DECLARE @cmd varchar(500)
Declare @TimeStamp as nvarchar(100) = Replace((CONVERT(varchar(25), getdate(), 121)),':','')

--Insert Batch numbers in user defined table types 
Insert Into @TVP_GLICU (ID)
Values ('563704')
Insert Into @TVP_GLICU (ID)
Values ('498721')

--select * 
--From @TVP_GLICU 

SET @cmd = 'BCP "EXECUTE [F0902].[D365O].[Get-F0911NewRecords]'+@TVP_GLICU+'" QUERYOUT "D:\D365O\DataSource\F0911\'+@TimeStamp+'.csv" -c -t\^, -T -S' + @@SERVERNAME + ''
EXECUTE MASTER..xp_cmdshell @cmd
EN

回答 2

Stack Overflow用户

发布于 2017-08-14 17:30:16

您不能引用在query参数范围之外创建的BCP中的表变量。执行BCP时,它会创建一个新会话,表变量的作用域仅限于创建表变量的会话。

票数 0
EN

Stack Overflow用户

发布于 2017-08-14 17:31:13

问题是,您正在连接字符串并试图附加表值类型:

代码语言:javascript
复制
SET @cmd = 'BCP "EXECUTE [F0902].[D365O].[Get-F0911NewRecords]'+@TVP_GLICU+'" QUERYOUT "D:\D365O\DataSource\F0911\'+@TimeStamp+'.csv" -c -t\^, -T -S' + @@SERVERNAME + ''

您可以在数据库中创建一个暂存表并在BCP查询中使用它的名称吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45679651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档