0
我有一个使用bcp创建在cmdshell中执行的csv文件的存储过程。当我在sql server 2012中运行存储过程时,它会像我需要的那样执行。但是当我从excel VBA运行它时,它只捕获循环的第一个执行,然后停止。没有错误,但我可以告诉它没有完全运行。bcp输出到master..XP_cmdshell存储过程从excel执行时不工作
我发布了下面的Vba和Sql存储过程代码。我正在努力找到有用的在线,所以我想我会问堆栈溢出!任何帮助将非常感激。谢谢!
Dim i As Long, folder As String, year1 As String, month1 As String, day1 As String, data As String, hour1 As String, minute1 As String
Dim cn As New ADODB.Connection
'Open the connection
strCon23 = "Driver={SQL Server};Server=*******"
cn.CommandTimeout = 0
cn.Open strCon23
s = "EXEC SendNewRates"
cn.Execute s
cn.Close
DECLARE @Date2 datetime
SET @Date2=getdate()
Declare @sql varchar(1250)
DECLARE @hour varchar(25), @min varchar(25), @sec varchar(25)
Declare @start VARCHAR(25), @Interval bigint, @num varchar(200), @max bigint,@end varchar(200)
Set @Hour=datepart(hh,@Date2)
Set @Min=datepart(Mi,@Date2)
Set @Sec=datepart(ss,@Date2)
Set @start=1
Set @Interval=50000
Set @[email protected]
Set @num=1
Set @max = (SELECT max(ROWNUM) FROM UPLOADTable)
While @Start<@Max
Begin
set @SQL='bcp "Select Data From ******* Where [RowNum]>='[email protected]+' and [RowNum]<='[email protected] +' order by [RowNum]" '+'queryout C:\Test\Upload_NextGen_'[email protected]Hour+'_'[email protected]+'_'[email protected]+'_'[email protected]+'_.csv -c -T -t -S PRK- PR\EMULATION'
EXEC master..XP_CMDSHELL @sql
Set @[email protected]+1
Set @Start=Convert(bigint,@Start)+convert(bigint,@Interval)
Set @End=Convert(bigint,@end)+convert(bigint,@Interval)
End
我不认为这是一个权限问题,因为我的经理,遇到问题并创建过程的人是系统管理员。她今天不在办公室,但我会尽快向你展示你的回复。感谢您的回复,我会告诉您我们的进展。 – user2383360
是的,但她的Winodws帐户仍然不会是SQL Server *上的SysAdmins角色的成员,除非明确添加* –