k**g 发帖数: 1558 | 1 我每天要bulk upload一个csv的文件,这个csv的 文件名有每天的日期,我用了下面的
语句,但是 出错,大家帮我一下吧?谢谢!
DECLARE @FileName VARCHAR(100)
SET @FileName='c:\DAILY_'+( CONVERT(VARCHAR(8),GETDATE(),112)+'.csv')
BULK INSERT DAILY
FROM @FileDate
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
Go
错误信息是:
Incorrect syntax near '@FileName'.
Msg 319, Level 15, State 1, Line 8
Incorrect syntax near the keyword 'with'. If this statement is a common
table expression or an xmlnamespaces clause, the previous statement must be
terminated with a semicolon. |
y****w 发帖数: 3747 | 2 add ";" before "with".
【在 k**g 的大作中提到】 : 我每天要bulk upload一个csv的文件,这个csv的 文件名有每天的日期,我用了下面的 : 语句,但是 出错,大家帮我一下吧?谢谢! : DECLARE @FileName VARCHAR(100) : SET @FileName='c:\DAILY_'+( CONVERT(VARCHAR(8),GETDATE(),112)+'.csv') : BULK INSERT DAILY : FROM @FileDate : WITH : ( : FIRSTROW = 2, : FIELDTERMINATOR = ';',
|
g***l 发帖数: 18555 | 3 我用个DOS BATCH FILE RENAME文件名,
copy yourFile %DATE%.txt
你用SSIS PACKAGE做个JOB也行,这样SCRIPT里你还能学点东西,文件名啊ARCHIVE啊都
好做。FTP啥的也都做了,出错还能报错。 |
y****w 发帖数: 3747 | 4 顺便问一下,sql server dba们有多少装个cygwin用shell的? powershell用的多么?
【在 g***l 的大作中提到】 : 我用个DOS BATCH FILE RENAME文件名, : copy yourFile %DATE%.txt : 你用SSIS PACKAGE做个JOB也行,这样SCRIPT里你还能学点东西,文件名啊ARCHIVE啊都 : 好做。FTP啥的也都做了,出错还能报错。
|
g***l 发帖数: 18555 | 5 俺不用POWERSHELL,一般的JOBS SSIS都包了,也可能是俺公司小SERVER少。
【在 y****w 的大作中提到】 : 顺便问一下,sql server dba们有多少装个cygwin用shell的? powershell用的多么?
|
y****w 发帖数: 3747 | 6 powershell做监控多些。不过感觉sql server这边大家更习惯去写sp.
【在 g***l 的大作中提到】 : 俺不用POWERSHELL,一般的JOBS SSIS都包了,也可能是俺公司小SERVER少。
|
g***l 发帖数: 18555 | 7 监控有专门的监控软件,自己写POWERSHELL小心别把SERVICE给STOP了,LOL
【在 y****w 的大作中提到】 : powershell做监控多些。不过感觉sql server这边大家更习惯去写sp.
|
y****w 发帖数: 3747 | 8 监控软件够用么?
【在 g***l 的大作中提到】 : 监控有专门的监控软件,自己写POWERSHELL小心别把SERVICE给STOP了,LOL
|
k**g 发帖数: 1558 | 9 不懂啊,是不是这样啊?谢谢!
BULK INSERT DAILY
FROM “@FileDate;”
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
Go
错误是:
Msg 4860, Level 16, State 1, Line 5
Cannot bulk load. The file "@FileDate;" does not exist.
【在 y****w 的大作中提到】 : add ";" before "with".
|
B*****g 发帖数: 34098 | 10 use dynamic sql
【在 k**g 的大作中提到】 : 我每天要bulk upload一个csv的文件,这个csv的 文件名有每天的日期,我用了下面的 : 语句,但是 出错,大家帮我一下吧?谢谢! : DECLARE @FileName VARCHAR(100) : SET @FileName='c:\DAILY_'+( CONVERT(VARCHAR(8),GETDATE(),112)+'.csv') : BULK INSERT DAILY : FROM @FileDate : WITH : ( : FIRSTROW = 2, : FIELDTERMINATOR = ';',
|
|
|
y****w 发帖数: 3747 | 11 ncorrect syntax near the keyword 'with'. If this statement is a common
table expression or an xmlnamespaces clause, the previous statement must be
terminated with a semicolon.
---错误信息很清楚啊。
sql server里面如果你要用CTE的话,with前面必须有分号。
所以有些人的风格就是
;with xx
........
【在 k**g 的大作中提到】 : 不懂啊,是不是这样啊?谢谢! : BULK INSERT DAILY : FROM “@FileDate;” : WITH : ( : FIRSTROW = 2, : FIELDTERMINATOR = ';', : ROWTERMINATOR = '\n' : ) : Go
|
B*****g 发帖数: 34098 | 12 这个和CTE有神马关系?
be
【在 y****w 的大作中提到】 : ncorrect syntax near the keyword 'with'. If this statement is a common : table expression or an xmlnamespaces clause, the previous statement must be : terminated with a semicolon. : ---错误信息很清楚啊。 : sql server里面如果你要用CTE的话,with前面必须有分号。 : 所以有些人的风格就是 : ;with xx : ........
|
k**g 发帖数: 1558 | 13 还是不对阿
BULK INSERT DAILY
FROM @FileDate
;WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
Go
错误信息
Msg 102, Level 15, State 1, Line 6
Incorrect syntax near '@FileDate'.
be
【在 y****w 的大作中提到】 : ncorrect syntax near the keyword 'with'. If this statement is a common : table expression or an xmlnamespaces clause, the previous statement must be : terminated with a semicolon. : ---错误信息很清楚啊。 : sql server里面如果你要用CTE的话,with前面必须有分号。 : 所以有些人的风格就是 : ;with xx : ........
|
g***l 发帖数: 18555 | 14 文件操作本来就是操作系统的东西,要么用DOS BATCH要么用SSIS里的SCRIPT,搞在C
DRIVE的根目录里,这也太不专业了吧。 |
y****w 发帖数: 3747 | 15 这说明不止一处错,
btw,你一会儿filename一会儿filedate干嘛呢,
【在 k**g 的大作中提到】 : 还是不对阿 : BULK INSERT DAILY : FROM @FileDate : ;WITH : ( : FIRSTROW = 2, : FIELDTERMINATOR = ';', : ROWTERMINATOR = '\n' : ) : Go
|
y****w 发帖数: 3747 | 16 没仔细看,看到with就想cte。 sql server好像见with就要加";"
【在 B*****g 的大作中提到】 : 这个和CTE有神马关系? : : be
|
B*****g 发帖数: 34098 | 17 你还在看sql server?打倒
【在 y****w 的大作中提到】 : 没仔细看,看到with就想cte。 sql server好像见with就要加";"
|
k**g 发帖数: 1558 | 18 写错了,filename 就是filedate.
c:\只是一个test,真正的file当然不会存在那里了。
大家帮忙看一下,如何bulk load一个日期在文件名中的csv?谢谢!
【在 y****w 的大作中提到】 : 这说明不止一处错, : btw,你一会儿filename一会儿filedate干嘛呢,
|
B*****g 发帖数: 34098 | 19 already replied : dynamic sql
【在 k**g 的大作中提到】 : 写错了,filename 就是filedate. : c:\只是一个test,真正的file当然不会存在那里了。 : 大家帮忙看一下,如何bulk load一个日期在文件名中的csv?谢谢!
|
k**g 发帖数: 1558 | 20 用了dynamic sql,还是出错。在with前加 了semicolon第二个error没有了,但是还是
有incorrect syntax near 'u:'
DECLARE @sql nvarchar(500)
SET @sql = 'BULK INSERT MSCIDAILY FROM u:\DAILY_'+(CONVERT(VARCHAR(8) ,
GETDATE(),112)+'.csv')+' WITH (FIRSTROW = 2,FIELDTERMINATOR = '';'',
ROWTERMINATOR = ''\n'')'
EXEC(@sql)
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'u:'.
Msg 319, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'with'. If this statement is a common
table expression or an xmlnamespaces clause, the previous statement must be
terminated with a semicolon.
【在 B*****g 的大作中提到】 : already replied : dynamic sql
|
|
|
i****a 发帖数: 36252 | 21 print @sql
copy result
paste into query window, try to run that
是
【在 k**g 的大作中提到】 : 用了dynamic sql,还是出错。在with前加 了semicolon第二个error没有了,但是还是 : 有incorrect syntax near 'u:' : DECLARE @sql nvarchar(500) : SET @sql = 'BULK INSERT MSCIDAILY FROM u:\DAILY_'+(CONVERT(VARCHAR(8) , : GETDATE(),112)+'.csv')+' WITH (FIRSTROW = 2,FIELDTERMINATOR = '';'', : ROWTERMINATOR = ''\n'')' : EXEC(@sql) : Msg 102, Level 15, State 1, Line 1 : Incorrect syntax near 'u:'. : Msg 319, Level 15, State 1, Line 1
|
A*******n 发帖数: 625 | 22 declare @sql nvarchar(400)
set @sql='
BULK INSERT DAILY
FROM '+'"c:\DAILY_'+( CONVERT(VARCHAR(50),GETDATE(),112)+'.txt"')+'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = '';''
ROWTERMINATOR = ''\n''
)'
exec (@sql)
it is working for me. try that. |
A*******n 发帖数: 625 | 23 declare @sql nvarchar(400)
set @sql='
BULK INSERT DAILY
FROM '+'"c:\DAILY_'+( CONVERT(VARCHAR(50),GETDATE(),112)+'.txt"')+'
WITH
(
FIELDTERMINATOR = '';''
)'
exec (@sql)
try this. |
A*******n 发帖数: 625 | 24 declare @sql nvarchar(400)
set @sql='
BULK INSERT DAILY
FROM '+'"c:\DAILY_'+( CONVERT(VARCHAR(50),GETDATE(),112)+'.txt"')+'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = '';''
ROWTERMINATOR = ''\n''
)'
exec (@sql)
try this |
A*******n 发帖数: 625 | 25 declare @sql nvarchar(400)
set @sql='
BULK INSERT DAILY
FROM '+'"c:\DAILY_'+( CONVERT(VARCHAR(50),GETDATE(),112)+'.csv"')+'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = '';''
ROWTERMINATOR = ''\n''
)'
exec (@sql) |
A*******n 发帖数: 625 | 26 DECLARE @SQL VARCHAR(400)
SET @SQL ='
BULK INSERT DAILY
FROM '+'"c :\DAILY_'+( CONVERT(VARCHAR(8),GETDATE(),112)+'.csv"')+'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)'
exec (@SQL)
试试看标点都对不对,差不多是这样。 |
A*******n 发帖数: 625 | 27 DECLARE @SQL VARCHAR(400)
SET @SQL ='
BULK INSERT DAILY
FROM '+'"c :\DAILY_'+( CONVERT(VARCHAR(8),GETDATE(),112)+'.csv"')+'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)'
exec (@SQL)
试试看标点都对不对,差不多是这样。 |
A*******n 发帖数: 625 | 28 'BULK INSERT MSCIDAILY FROM'+'" u:\DAILY_'+(CONVERT(VARCHAR(8) ,
GETDATE(),112)+'.csv"' |
A*******n 发帖数: 625 | |
k**g 发帖数: 1558 | 30 Thanks so much! It works for me too.
【在 A*******n 的大作中提到】 : declare @sql nvarchar(400) : set @sql=' : BULK INSERT DAILY : FROM '+'"c:\DAILY_'+( CONVERT(VARCHAR(50),GETDATE(),112)+'.csv"')+' : WITH : ( : FIRSTROW = 2, : FIELDTERMINATOR = '';'' : ROWTERMINATOR = ''\n'' : )'
|
|
|
k**g 发帖数: 1558 | |
B*****g 发帖数: 34098 | 32 你看我的回帖想出答案了还是抄楼上的?呵呵
【在 k**g 的大作中提到】 : 发一圈包子.
|
k**g 发帖数: 1558 | 33 结构分自己想的,两个“”抄楼上的。呵呵.
【在 B*****g 的大作中提到】 : 你看我的回帖想出答案了还是抄楼上的?呵呵
|
k********e 发帖数: 702 | 34 对不起,对不起,我来晚了
我的答案是“用 dynamic SQL"
对不对? |
k**g 发帖数: 1558 | 35 那我也给你个包子。。。
【在 k********e 的大作中提到】 : 对不起,对不起,我来晚了 : 我的答案是“用 dynamic SQL" : 对不对?
|
k********e 发帖数: 702 | 36 ft
原来前面已经有人回答过了
受之有愧呀
【在 k**g 的大作中提到】 : 那我也给你个包子。。。
|