zoukankan      html  css  js  c++  java
  • 数据库缓存依赖 ,sql dependency demo和 sql 语句要求

    设置数据库 databaseName 数据库名称

    ALTER DATABASE databaseName SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
    ALTER DATABASE databaseName SET ENABLE_BROKER;

    simple demo:

              DataTable dt = HttpRuntime.Cache["dt"] as DataTable;
                StringBuilder pb = new StringBuilder();
                if (dt == null)
                {
                    using (SqlConnection sqlCon = new SqlConnection(@"Data Source=TL458210DRAGON;Initial Catalog=CPG;Integrated Security=True"))
                    {
                        sqlCon.Open();
                        SqlCommand sqlCmd = new SqlCommand();
                        sqlCmd.Connection = sqlCon;
                        sqlCmd.CommandText = "SELECT code,cnName FROM [dbo].[Bank] AS [b]";
                        dt = new DataTable();
                        SqlCacheDependency scd = new SqlCacheDependency(sqlCmd);
                        SqlDataAdapter sda = new SqlDataAdapter(sqlCmd);
                        sda.Fill(dt);
                        HttpRuntime.Cache.Insert("dt", dt, scd);
                        sqlCon.Close();
                    }

    注意的是:sql 语句要求很多,简单理解为:单表简单查询,指明列名称,想要多表的关联只能是单表查出来然后内存中关联

    msdn解释连接如下:想要详细了解的可以看下

    https://msdn.microsoft.com/en-US/library/ms181122.aspx

    为了方便自己看,copy如下

    满足下列要求的 SELECT 语句支持查询通知:

    • 必须显式说明 SELECT 语句中提取的列,并且表名必须限定为两部分组成的名称。注意,这意味着语句中引用的所有表都必须处于同一数据库中。

    • 语句不能使用星号 (*) 或 table_name.* 语法指定列。

    • 语句不能使用未命名列或重复的列名。

    • 语句必须引用基表。

    • 语句不能引用具有计算列的表。

    • 在 SELECT 语句中提取的列不能包含聚合表达式,除非语句使用 GROUP BY 表达式。提供 GROUP BY 表达式时,选择列表便可以包含聚合函数 COUNT_BIG() 或 SUM()。但是,不能为可为空的列指定 SUM()。语句不能指定 HAVING、CUBE 或 ROLLUP。

    • 在用作简单表达式的 SELECT 语句中提取的列不能多次显示。

    • 语句不能包含 PIVOT 或 UNPIVOT 运算符。

    • 语句不能包含 UNION、INTERSECT 或 EXCEPT 运算符。

    • 语句不能引用视图。

    • 语句不能包含下列任意一个:DISTINCT、COMPUTE、COMPUTE BY 或 INTO。

    • 语句不能引用服务器全局变量 (@@variable_name)。

    • 语句不能引用派生表、临时表或表变量。

    • 语句不能从其他数据库或服务器中引用表或视图。

    • 语句不能包含子查询、外部联接或自联接。

    • 语句不能引用下列大型对象类型:text、ntext 和 image。

    • 语句不能使用 CONTAINS 或 FREETEXT 全文谓词。

    • 语句不能使用行集函数,包括 OPENROWSET 和 OPENQUERY。

    • 语句不能使用下列任何一个聚合函数:AVG、COUNT(*)、MAX、MIN、STDEV、STDEVP、VAR 或 VARP。

    • 语句不能使用任何具有不确定性的函数,包括排名函数和开窗函数。

    • 语句不能包含用户定义聚合。

    • 语句不能引用系统表或视图,包括目录视图和动态管理视图。

    • 语句不能包含 FOR BROWSE 信息。

    • 语句不能引用队列。

    • 语句不能包含无法更改和无法返回结果的条件语句(如 WHERE 1=0)。

    • 语句不能指定 READPAST 锁提示。

    • 语句不能引用任何 Service Broker QUEUE。

    • 语句不能引用同义词。

    • 语句不能具有基于 double/real 数据类型的比较或表达式。

    • 语句不得使用 TOP 表达式。

    如果发出批处理或存储过程订阅请求,则会针对批处理或存储过程内执行的每个语句发出单独的订阅请求。

    EXECUTE 语句不会注册通知,但是会将通知请求流式传递到已执行的命令。如果为批处理,则上下文将适用于已执行的语句,并且应用上述相同规则。

    如果提交重复的活动订阅,则会导致使用新的指定超时值续订现有订阅。重复订阅是指满足下列条件的订阅:

    • 同一用户在相同的数据库上下文下提交查询。

    • 使用相同的模板、参数值、通知 ID 以及传递位置。

    这意味着如果针对相同的查询请求通知,则仅发送一个通知。这适用于批处理中的重复查询,也适用于存储过程中调用多次的查询。

    代做毕业设计和论文 私活, 需要.net,asp.net ,mvc ef cs 客户端,bs 网站项目开发的请私信我,
  • 相关阅读:
    MySQL客户端管理
    Windows10安装Pytorch环境要点
    使用ssh加密github通信
    JVM 对象状态判断01
    并发之AbstractQueuedLongSynchronize----AQS
    关于CountDownLatch控制线程的执行顺序
    关于线程执行顺序的问题
    并发之Striped64(l累加器)
    并发之线程以及线程的中断状态
    1 JPA入门----项目搭建以及CRUD
  • 原文地址:https://www.cnblogs.com/duguzhenglong/p/7094485.html
Copyright © 2011-2022 走看看