0

我有两个脚本在一个程序中调用,第一个脚本创建一个数据库,另一个是填充数据库的脚本。

如何在启动第二个脚本之前知道第一个脚本是否完成?

如何等待第一个通知进程结束的第二个脚本?服务器如何通知数据库程序的创建,然后继续进行进一步的工作?代码

字符串 createDatabasePath = args[0];

        sqlConnectionStr = Properties.Settings.Default.conString;
        SqlConnection conn = new SqlConnection(sqlConnectionStr);
        conn.Open();
        SqlCommand comm = new SqlCommand();
        comm.Connection = conn;
        FileInfo file = new FileInfo(createDatabasePath);
        string script = file.OpenText().ReadToEnd();
        script = script.Replace("GO", "");
        comm.CommandText = script;
        comm.ExecuteNonQuery();

我的问题是executenonquery何时完成?我怎么知道?

4

1 回答 1

2

我们需要知道“在一个程序中”是什么意思——是一组 T-SQL 命令还是一个 C# 应用程序等?但是,确保一个在另一个之前完成的最简单方法是将它们组合成一个过程,或者让第一个调用第二个:

...Do the stuff in Process1;
EXEC Process2;

一个更复杂的选项是更改第二个过程以检查新数据库是否存在并等待一段时间,直到它完成:

DECLARE @I INT
SET @I = 0

WHILE @I = 0
BEGIN
    IF OBJECT_ID('NewDB..tblFinalTableCreated') IS NOT NULL 
        SET @I = 1
    ELSE 
        WAITFOR DELAY '00:05:00' --Wait 5 minutes
END

StartProcess2;
于 2012-06-19T16:24:27.977 回答