我在新建一个作业,里面的sql文老是提示 :复制方向必须是 'in'、'out' 或 'format'。请问该如何修该

babyQ 2009-03-31 02:09:39
DECLARE @strPath NVARCHAR(300)
Declare @sql nvarchar(300)
set @strPath = convert(NVARCHAR(19),getdate(),120)
set @strPath = 'e:\bak\' + @strPath + '.txt'
set @sql = 'bcp select * from db1..table1 WHERE (regdate > CONVERT(varchar(100), DATEADD(dd, - 1, GETDATE()), 23)) AND (regdate < CONVERT(varchar(100), GETDATE(), 23)) queryout '+ @strPath +' -c -Sclay -Usa -P123456'
EXEC master..xp_cmdshell @sql

请问这个该如何改才正确呢,我想导出的数据是以当前导出日期问文件名
...全文
206 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
babyQ 2009-03-31
  • 打赏
  • 举报
回复
DECLARE @strPath NVARCHAR(300)
Declare @sql nvarchar(300)
set @strPath = convert(NVARCHAR(100),getdate(),120)
set @strPath = replace(@strPath,':','.')
set @strPath = 'd:\bak\' + @strPath + '.txt'
set @sql = 'bcp "select * from db1..table1 WHERE (regdate > CONVERT(varchar(100), DATEADD(dd, - 1, GETDATE()), 23)) AND
(regdate < CONVERT(varchar(100), GETDATE(), 23))" queryout "'+ @strPath +'" -c -Sclay -Usa -P123456'
print @sql
EXEC master..xp_cmdshell @sql


为什么加个时间判断的就不行了?
babyQ 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 htl258 的回复:]
SQL codeDECLARE @strPath NVARCHAR(300)
Declare @sql nvarchar(300)
set @strPath = convert(NVARCHAR(19),getdate(),120)
set @strPath = 'e:\bak\' + @strPath + '.txt'
set @sql = 'bcp "select * from db1..table1 WHERE (regdate > CONVERT(varchar(100), DATEADD(dd, - 1, GETDATE()), 23)) AND (regdate < CONVERT(varchar(100), GETDATE(), 23))" queryout "'+ @strPath +'" -c -S"clay" -U"sa" -P"123456"'

[/Quote]


这样也可以,THX
babyQ 2009-03-31
  • 打赏
  • 举报
回复
额,我明白了,中间多了个空格,呵呵
htl258_Tony 2009-03-31
  • 打赏
  • 举报
回复
DECLARE @strPath NVARCHAR(300) 
Declare @sql nvarchar(300)
set @strPath = convert(NVARCHAR(19),getdate(),120)
set @strPath = 'e:\bak\' + @strPath + '.txt'
set @sql = 'bcp "select * from db1..table1 WHERE (regdate > CONVERT(varchar(100), DATEADD(dd, - 1, GETDATE()), 23)) AND (regdate < CONVERT(varchar(100), GETDATE(), 23))" queryout "'+ @strPath +'" -c -S"clay" -U"sa" -P"123456"'
EXEC master..xp_cmdshell @sql
TRY
babyQ 2009-03-31
  • 打赏
  • 举报
回复
DECLARE @strPath NVARCHAR(300)
Declare @sql nvarchar(300)
set @strPath = convert(NVARCHAR(19),getdate(),120)
set @strPath = 'e:\bak\' + @strPath + '.txt'
set @sql = 'bcp "select * from db1..table1" WHERE (regdate > CONVERT(varchar(100), DATEADD(dd, - 1, GETDATE()), 23)) AND (regdate < CONVERT(varchar(100), GETDATE(), 23)) queryout '+ @strPath +' -c -Sclay -Usa -P123456'
EXEC master..xp_cmdshell @sql

提示:命令行中的参数 '142301.txt' 未知。
liangCK 2009-03-31
  • 打赏
  • 举报
回复
将查询用双引号括起来,看看。

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧