SqlDependency没有触发

时间:2018-10-01 07:23:12

标签: sql-server sql-server-2017

SqlDependency没有触发。这是过去有效的方法,所以我不知道出了什么问题。

    private static void Main(string[] args)
    {
        SqlDependency dependency;
        var connectionString = "Server=localhost;Database=SqlServerTestDatabase;Trusted_Connection=True;";
        using (var connection = new SqlConnection(connectionString))
        {
            connection.Open();
            using (var command = new SqlCommand("SELECT FullName, State FROM [Sales].[Customer]", connection))
            {
                dependency = new SqlDependency(command);
                SqlDependency.Start(connectionString);
                dependency.OnChange += new OnChangeEventHandler((s, e) =>
                {
                    Console.WriteLine("Success!!!!");
                });
                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read()) { } //NoOP
                }
            }

            while (true)
            {
                Console.WriteLine($"Waiting for event. dependency.HasChanges = {dependency.HasChanges}");
                Thread.Sleep(1000);
            }
        }
    }

SQL触发事件:

INSERT INTO Sales.Customer(FullName, State ) VALUES ( N'Test 123', 'CA');

我没有收到错误,该事件根本没有触发。

用户为sysadmin,并且已在数据库级别启用了服务代理。

数据库版本:14.0.2002.14

1 个答案:

答案 0 :(得分:0)

您有可能成为数据库所有者,但仍然弄乱了帐户的安全设置。要解决此问题,请删除用户(而不是登录名),然后重新创建。