【问题标题】:SqlDependency isn't firingSqlDependency 没有触发
【发布时间】:2018-10-01 07:23:12
【问题描述】:

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

【问题讨论】:

  • 尝试运行 SQL 跟踪来捕获请求。
  • 不错的建议,但我看到正在创建临时 SP。

标签: sql-server sql-server-2017


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多