我尝试了以下命令
USE <DBNAME>
SELECT 'exec master..xp_cmdshell'
+ ' '''
+ 'bcp'
+ ' ' + TABLE_CATALOG + '.' + TABLE_SCHEMA + '.' + TABLE_NAME
+ ' out'
+ ' D:\'
+ TABLE_NAME + '.csv'
+ ' -c'
+ ' -t,'
+ ' -T'
+ ' -S' + @@SERVERNAME
+ ''''
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
Run Code Online (Sandbox Code Playgroud)
我想以以下格式获取数据。
格式将是管道分隔的文本文件,带有双引号文本限定符并且没有标题行。如何修改或编写 BCP 命令以获得所需的结果。
我的数据集只是一个客户表。
CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
Run Code Online (Sandbox Code Playgroud)
所需数据格式为
1|"Alfreds Futterkiste"|"Maria Anders"|"Obere Str. 57 Berlin"|12209|"Germany"
Run Code Online (Sandbox Code Playgroud)
现在我更好地理解您正在尝试提取数据,这是一个新答案。这只是从我在 tempdb 中创建的表中提取数据。
use tempdb
-- drop table mytable
create table mytable
(id int, customer_name varchar(55), cityname varchar(55), statename varchar(55))
insert into mytable
values (1, 'a', 'a city', 'a state')
, (2, 'b', 'b city', 'b state')
, (3, 'c', 'c city', 'c state')
, (4, 'd', 'd city', 'd state')
select cast(id as varchar(10)), customer_name, cityname, statename from mytable
Run Code Online (Sandbox Code Playgroud)
这导致以下 bcp 命令
bcp "select cast(id as varchar(10)), customer_name, cityname, statename from mytable" queryout c:\temp\myTable.csv /S.\instance_name /d tempdb /c /t"|" -T
Run Code Online (Sandbox Code Playgroud)
更新此 bcp 命令将添加双引号
exec Master..xp_Cmdshell 'bcp "select cast(id as varchar(10)), quotename(customer_name,char(34)), quotename(cityname,char(34)), quotename(statename,char(34)) from mytable" queryout "c:\temp\myTable.csv" /S.\instance_name /d tempdb /c /t"|" /T'
Run Code Online (Sandbox Code Playgroud)
或者只是使用 bcp
bcp "select cast(id as varchar(10)), quotename(customer_name,char(34)), quotename(cityname,char(34)), quotename(statename,char(34)) from mytable" queryout "c:\temp\myTable.csv" /S.\instance_name /d tempdb /c /t"|" /T
Run Code Online (Sandbox Code Playgroud)
此 bcp 命令使用quotename函数。这允许您使用您喜欢的任何字符来分隔您的输出。
| 归档时间: |
|
| 查看次数: |
26144 次 |
| 最近记录: |