22,209
社区成员
发帖
与我相关
我的任务
分享
DECLARE @sql NVARCHAR(2048)
DECLARE @DBName NVARCHAR(128)
DECLARE @FileName NVARCHAR(128)
DECLARE @ReturnDesc NVARCHAR(MAX)
DECLARE @CmdReturn TABLE(CmdRet NVARCHAR(max))
SET @FileName = ''
SET @DBName = ''
SET @ReturnDesc = ''
SET @sql = 'sqlcmd -S '+ @@SERVERNAME +' -d ' + @DBName + ' -i "' + @FileName + '"'
BEGIN TRY
-- 收集返回信息
INSERT INTO @CmdReturn
EXEC @rc = master..xp_cmdshell @sql
-- 合并返回信息
SELECT
@ReturnDesc = @ReturnDesc + CmdRet
FROM
@CmdReturn
WHERE
CmdRet IS NOT NULL
--让后对@CmdReturn进行分析
END TRY
BEGIN CATCH
PRINT '执行脚本时出现以下异常:' + CHAR(13) + CHAR(10)
+ ERROR_MESSAGE()
END CATCH
Process p = new Process();
p.StartInfo.FileName = "sqlcmd.exe";
p.StartInfo.Arguments = @"-S [服务器名] -U [账号] -P [密码] -d [数据库名] -i [文件路径]+update.sql -b";
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.Start();
System.IO.StreamReader sr = p.StandardOutput;
string sRunResult = sr.ReadToEnd(); // 执行结果赋值给变量sRunResult
sr.Close();
sr.Dispose();
p.WaitForExit();
p.Close();
Process p = new Process();
p.StartInfo.FileName = "sqlcmd.exe";
p.StartInfo.Arguments = @"-S [服务器名] -U [账号] -P [密码] -d [数据库名] -i [文件路径]+update.sql -b";
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.Start();
System.IO.StreamReader sr = p.StandardOutput;
string sRunResult = sr.ReadToEnd(); // 执行结果赋值给变量sRunResult
sr.Close();
sr.Dispose();
p.WaitForExit();
p.Close();