问题:能否我直接导出数据到一个实际不存在的文件名,导出的时候,自动创建好这个文件,然后导出数据。
11 个解决方案
#1
不用预先设置啊,我都是直接导出来的,不过是CSV,用的就是BCP,导出的时候才指定文件名
#2
--这是个例子,我假设要把test库的temtable表的applicationID,Category两列导出成CSV文件
if OBJECT_ID('temtable','u')is not null
drop table temtable
select * into temtable from (select 'applicationID'as [applicationID],'Category' as [Category] --表头
union all
select CONVERT(varchar(20),[applicationID]), [Category] from #temtable)a
declare @filename nvarchar(30)
select @filename='Report'+right(replace(convert(date,GETDATE()),'-',''),2)+substring(replace(convert(date,GETDATE()),'-',''),5,2)+substring(replace(convert(date,GETDATE()),'-',''),1,4)+'.csv'
------------------------------------------
declare @strSQL nvarchar(1024)
set @strSQL='bcp "SELECT applicationID,Category FROM test.dbo.temtable" queryout C:\Temp\DBA_date\'+@filename+' -c -T -t","'
print @strSQL
EXEC master..xp_cmdshell @strSQL
#3
没有事先建好文件,一直会报这个错误:Error = [Microsoft][SQL Server Native Client 11.0]无法打开 BCP 主数据文件
#4
那是别的问题,我这个代码是没有实现创建好的。一直在用。
#5
太忧伤了
#6
--試試以下代碼:
EXEC master..xp_cmdshell 'bcp "SELECT * FROM 庫名.dbo.表名" queryout C:\temp.xls -c -S 服務器名 -U 用戶名 -P 密碼'
#7
这个报错是权限问题哦。
#8
--如果已建立連線,也可以如下:
EXEC master..xp_cmdshell 'bcp "SELECT * FROM 庫名.dbo.表名" queryout C:\temp.xls -c -T'
#9
没有事先建好文件,一直会报这个错误:Error = [Microsoft][SQL Server Native Client 11.0]无法打开 BCP 主数据文件 --这是个例子,我假设要把test库的temtable表的applicationID,Category两列导出成CSV文件
if OBJECT_ID('temtable','u')is not null
drop table temtable
select * into temtable from (select 'applicationID'as [applicationID],'Category' as [Category] --表头
union all
select CONVERT(varchar(20),[applicationID]), [Category] from #temtable)a
declare @filename nvarchar(30)
select @filename='Report'+right(replace(convert(date,GETDATE()),'-',''),2)+substring(replace(convert(date,GETDATE()),'-',''),5,2)+substring(replace(convert(date,GETDATE()),'-',''),1,4)+'.csv'
------------------------------------------
declare @strSQL nvarchar(1024)
set @strSQL='bcp "SELECT applicationID,Category FROM test.dbo.temtable" queryout C:\Temp\DBA_date\'+@filename+' -c -T -t","'
print @strSQL
EXEC master..xp_cmdshell @strSQL
这个报错是权限问题哦。
#10
是指sa用户没权建excel文件吗?! 没有事先建好文件,一直会报这个错误:Error = [Microsoft][SQL Server Native Client 11.0]无法打开 BCP 主数据文件 --这是个例子,我假设要把test库的temtable表的applicationID,Category两列导出成CSV文件
if OBJECT_ID('temtable','u')is not null
drop table temtable
select * into temtable from (select 'applicationID'as [applicationID],'Category' as [Category] --表头
union all
select CONVERT(varchar(20),[applicationID]), [Category] from #temtable)a
declare @filename nvarchar(30)
select @filename='Report'+right(replace(convert(date,GETDATE()),'-',''),2)+substring(replace(convert(date,GETDATE()),'-',''),5,2)+substring(replace(convert(date,GETDATE()),'-',''),1,4)+'.csv'
------------------------------------------
declare @strSQL nvarchar(1024)
set @strSQL='bcp "SELECT applicationID,Category FROM test.dbo.temtable" queryout C:\Temp\DBA_date\'+@filename+' -c -T -t","'
print @strSQL
EXEC master..xp_cmdshell @strSQL
这个报错是权限问题哦。
参考:
EXEC xp_cmdshell 'ECHO %USERDOMAIN%\%USERNAME%'
看返回的是否为 :NT AUTHORITY\NETWORK SERVICE
配置管理器(configuration manager)看到登陆内置账号为Network service,改成local system问题解决。
执行创建excel的时候,是需要在windows端创建文件。network service是没有这个权限的。 需要提升权限才可以。 因此修改为local system 就是本地系统账户,即可创建文件了。
#11
是指sa用户没权建excel文件吗?! 没有事先建好文件,一直会报这个错误:Error = [Microsoft][SQL Server Native Client 11.0]无法打开 BCP 主数据文件 --这是个例子,我假设要把test库的temtable表的applicationID,Category两列导出成CSV文件
if OBJECT_ID('temtable','u')is not null
drop table temtable
select * into temtable from (select 'applicationID'as [applicationID],'Category' as [Category] --表头
union all
select CONVERT(varchar(20),[applicationID]), [Category] from #temtable)a
declare @filename nvarchar(30)
select @filename='Report'+right(replace(convert(date,GETDATE()),'-',''),2)+substring(replace(convert(date,GETDATE()),'-',''),5,2)+substring(replace(convert(date,GETDATE()),'-',''),1,4)+'.csv'
------------------------------------------
declare @strSQL nvarchar(1024)
set @strSQL='bcp "SELECT applicationID,Category FROM test.dbo.temtable" queryout C:\Temp\DBA_date\'+@filename+' -c -T -t","'
print @strSQL
EXEC master..xp_cmdshell @strSQL
这个报错是权限问题哦。
参考:
EXEC xp_cmdshell 'ECHO %USERDOMAIN%\%USERNAME%'
看返回的是否为 :NT AUTHORITY\NETWORK SERVICE
配置管理器(configuration manager)看到登陆内置账号为Network service,改成local system问题解决。
执行创建excel的时候,是需要在windows端创建文件。network service是没有这个权限的。 需要提升权限才可以。 因此修改为local system 就是本地系统账户,即可创建文件了。
#1
不用预先设置啊,我都是直接导出来的,不过是CSV,用的就是BCP,导出的时候才指定文件名
#2
--这是个例子,我假设要把test库的temtable表的applicationID,Category两列导出成CSV文件
if OBJECT_ID('temtable','u')is not null
drop table temtable
select * into temtable from (select 'applicationID'as [applicationID],'Category' as [Category] --表头
union all
select CONVERT(varchar(20),[applicationID]), [Category] from #temtable)a
declare @filename nvarchar(30)
select @filename='Report'+right(replace(convert(date,GETDATE()),'-',''),2)+substring(replace(convert(date,GETDATE()),'-',''),5,2)+substring(replace(convert(date,GETDATE()),'-',''),1,4)+'.csv'
------------------------------------------
declare @strSQL nvarchar(1024)
set @strSQL='bcp "SELECT applicationID,Category FROM test.dbo.temtable" queryout C:\Temp\DBA_date\'+@filename+' -c -T -t","'
print @strSQL
EXEC master..xp_cmdshell @strSQL
#3
--这是个例子,我假设要把test库的temtable表的applicationID,Category两列导出成CSV文件
if OBJECT_ID('temtable','u')is not null
drop table temtable
select * into temtable from (select 'applicationID'as [applicationID],'Category' as [Category] --表头
union all
select CONVERT(varchar(20),[applicationID]), [Category] from #temtable)a
declare @filename nvarchar(30)
select @filename='Report'+right(replace(convert(date,GETDATE()),'-',''),2)+substring(replace(convert(date,GETDATE()),'-',''),5,2)+substring(replace(convert(date,GETDATE()),'-',''),1,4)+'.csv'
------------------------------------------
declare @strSQL nvarchar(1024)
set @strSQL='bcp "SELECT applicationID,Category FROM test.dbo.temtable" queryout C:\Temp\DBA_date\'+@filename+' -c -T -t","'
print @strSQL
EXEC master..xp_cmdshell @strSQL
#4
那是别的问题,我这个代码是没有实现创建好的。一直在用。
#5
那是别的问题,我这个代码是没有实现创建好的。一直在用。
#6
--試試以下代碼:
EXEC master..xp_cmdshell 'bcp "SELECT * FROM 庫名.dbo.表名" queryout C:\temp.xls -c -S 服務器名 -U 用戶名 -P 密碼'
#7
没有事先建好文件,一直会报这个错误:Error = [Microsoft][SQL Server Native Client 11.0]无法打开 BCP 主数据文件 --这是个例子,我假设要把test库的temtable表的applicationID,Category两列导出成CSV文件
if OBJECT_ID('temtable','u')is not null
drop table temtable
select * into temtable from (select 'applicationID'as [applicationID],'Category' as [Category] --表头
union all
select CONVERT(varchar(20),[applicationID]), [Category] from #temtable)a
declare @filename nvarchar(30)
select @filename='Report'+right(replace(convert(date,GETDATE()),'-',''),2)+substring(replace(convert(date,GETDATE()),'-',''),5,2)+substring(replace(convert(date,GETDATE()),'-',''),1,4)+'.csv'
------------------------------------------
declare @strSQL nvarchar(1024)
set @strSQL='bcp "SELECT applicationID,Category FROM test.dbo.temtable" queryout C:\Temp\DBA_date\'+@filename+' -c -T -t","'
print @strSQL
EXEC master..xp_cmdshell @strSQL
这个报错是权限问题哦。
#8
--如果已建立連線,也可以如下:
EXEC master..xp_cmdshell 'bcp "SELECT * FROM 庫名.dbo.表名" queryout C:\temp.xls -c -T'
#9
没有事先建好文件,一直会报这个错误:Error = [Microsoft][SQL Server Native Client 11.0]无法打开 BCP 主数据文件 --这是个例子,我假设要把test库的temtable表的applicationID,Category两列导出成CSV文件
if OBJECT_ID('temtable','u')is not null
drop table temtable
select * into temtable from (select 'applicationID'as [applicationID],'Category' as [Category] --表头
union all
select CONVERT(varchar(20),[applicationID]), [Category] from #temtable)a
declare @filename nvarchar(30)
select @filename='Report'+right(replace(convert(date,GETDATE()),'-',''),2)+substring(replace(convert(date,GETDATE()),'-',''),5,2)+substring(replace(convert(date,GETDATE()),'-',''),1,4)+'.csv'
------------------------------------------
declare @strSQL nvarchar(1024)
set @strSQL='bcp "SELECT applicationID,Category FROM test.dbo.temtable" queryout C:\Temp\DBA_date\'+@filename+' -c -T -t","'
print @strSQL
EXEC master..xp_cmdshell @strSQL
这个报错是权限问题哦。
#10
是指sa用户没权建excel文件吗?! 没有事先建好文件,一直会报这个错误:Error = [Microsoft][SQL Server Native Client 11.0]无法打开 BCP 主数据文件 --这是个例子,我假设要把test库的temtable表的applicationID,Category两列导出成CSV文件
if OBJECT_ID('temtable','u')is not null
drop table temtable
select * into temtable from (select 'applicationID'as [applicationID],'Category' as [Category] --表头
union all
select CONVERT(varchar(20),[applicationID]), [Category] from #temtable)a
declare @filename nvarchar(30)
select @filename='Report'+right(replace(convert(date,GETDATE()),'-',''),2)+substring(replace(convert(date,GETDATE()),'-',''),5,2)+substring(replace(convert(date,GETDATE()),'-',''),1,4)+'.csv'
------------------------------------------
declare @strSQL nvarchar(1024)
set @strSQL='bcp "SELECT applicationID,Category FROM test.dbo.temtable" queryout C:\Temp\DBA_date\'+@filename+' -c -T -t","'
print @strSQL
EXEC master..xp_cmdshell @strSQL
这个报错是权限问题哦。
参考:
EXEC xp_cmdshell 'ECHO %USERDOMAIN%\%USERNAME%'
看返回的是否为 :NT AUTHORITY\NETWORK SERVICE
配置管理器(configuration manager)看到登陆内置账号为Network service,改成local system问题解决。
执行创建excel的时候,是需要在windows端创建文件。network service是没有这个权限的。 需要提升权限才可以。 因此修改为local system 就是本地系统账户,即可创建文件了。
#11
是指sa用户没权建excel文件吗?! 没有事先建好文件,一直会报这个错误:Error = [Microsoft][SQL Server Native Client 11.0]无法打开 BCP 主数据文件 --这是个例子,我假设要把test库的temtable表的applicationID,Category两列导出成CSV文件
if OBJECT_ID('temtable','u')is not null
drop table temtable
select * into temtable from (select 'applicationID'as [applicationID],'Category' as [Category] --表头
union all
select CONVERT(varchar(20),[applicationID]), [Category] from #temtable)a
declare @filename nvarchar(30)
select @filename='Report'+right(replace(convert(date,GETDATE()),'-',''),2)+substring(replace(convert(date,GETDATE()),'-',''),5,2)+substring(replace(convert(date,GETDATE()),'-',''),1,4)+'.csv'
------------------------------------------
declare @strSQL nvarchar(1024)
set @strSQL='bcp "SELECT applicationID,Category FROM test.dbo.temtable" queryout C:\Temp\DBA_date\'+@filename+' -c -T -t","'
print @strSQL
EXEC master..xp_cmdshell @strSQL
这个报错是权限问题哦。
参考:
EXEC xp_cmdshell 'ECHO %USERDOMAIN%\%USERNAME%'
看返回的是否为 :NT AUTHORITY\NETWORK SERVICE
配置管理器(configuration manager)看到登陆内置账号为Network service,改成local system问题解决。
执行创建excel的时候,是需要在windows端创建文件。network service是没有这个权限的。 需要提升权限才可以。 因此修改为local system 就是本地系统账户,即可创建文件了。