首先,我是新人。我在SQL Server 2008 R2上。我有一个可用的批量插入脚本。我尝试创建一个存储过程,然后将其另存为storedprocedure.sql
。最终,我需要一个.bat
文件来启动批量插入。我有另一个可以运行外部程序的程序,但它只能看到.bat
或.exe
。
所以,这是我的批量插入脚本:
Bulk Insert MyDatabase.dbo.cust_adj
From 'C:\path\importformat.txt'
With
(
FieldTerminator= '|',
Rowterminator= '\n'
)
Go
(this works)
然后我尝试创建存储过程:
Create Procedure LoadDailyAdjReport
AS
Bulk Insert MyDatabase.dbo.cust_adj
From 'C:\path\importformat.txt'
With
(
FieldTerminator= '|',
Rowterminator= '\n'
)
Go
它说它成功了......但我不知道怎么检查它。
然后我尝试制作.bat文件并尝试:
@echo off
sqlcmd -S MyServer\MyDataBase -i C:\mypath\Load_Daily_Adjustment.sql
它不起作用。起初我以为这是我的.bat指令(可能不对),但后来我想知道我的存储过程是否正确。问题是我真的不太了解这个问题。有人可以就这应该是什么提供一些建议或指示吗?
非常感谢你。
好的,在SQL Server上,这个.bat文件有效:
sqlcmd -S MyServerName -E -d MyDatabase -Q“EXEC MyStoredProcedure”
服务器让我们说:\ Server1 \ 我运行bat文件的程序在另一台服务器上。该文件是共享的,用户具有SQL安全性,文件夹,编程等等。
如何将.bat文件更改为程序服务器?
因此,在Server2上,我想拥有访问并打开Server1上的.bat的bat文件。为此,我是否需要更改.bat文件以使路径为\ Server1 \ PathName \ File.bat?
答案 0 :(得分:0)
执行SP LoadDailyAdjReport的SQL将是EXEC LoadDailyAdjReport
- 所以在ypur批处理文件SQLCMD中尝试这个:
sqlcmd -S YourServerName -E -d YourDataBaseName -Q "EXEC LoadDailyAdjReport"
( - E使用可信连接(Windows登录)更多细节 http://msdn.microsoft.com/en-us/library/ms162773.aspx)
如果您想通过传递.txt文件名作为参数,请参阅
How do I call a stored procedure with arguments using sqlcmd.exe?