从C#代码里传入参数到调用存储过程,参数的值为null,执行存储过程一直提示需要参数 '@xxx',但未提供该参数.通过profiler发现生成的参数值变成为default. 解决方案:1.将Parameter值为null的参数重新赋值DBNull.Value. 2.存储过程里参数加上默认值=null.…
本文出处:http://www.cnblogs.com/wy123/p/6262800.html   在考虑重编译T-SQL(或者存储过程)的时候,有两种方式可以实现强制重编译(前提是忽略导致重编译的其他因素的情况下,比如重建索引,更新统计信息等等), 一是基于WITH RECOMPILE的存储过程级别重编译,另外一种是基于OPTION(RECOMPILE)的语句级重编译. 之前了解的比较浅,仅仅认为是前者就是编译整个存储过程中的所有的语句,后者是重编译存储过程中的某一个语句,也没有追究到底是不…
在考虑重编译T-SQL(或者存储过程)的时候,有两种方式可以实现强制重编译(前提是忽略导致重编译的其他因素的情况下,比如重建索引,更新统计信息等等), 一是基于WITH RECOMPILE的存储过程级别重编译,另外一种是基于OPTION(RECOMPILE)的语句级重编译. 之前了解的比较浅,仅仅认为是前者就是编译整个存储过程中的所有的语句,后者是重编译存储过程中的某一个语句,也没有追究到底是不是仅仅只有这么一点区别. 事实上在某些特定情况下,两者的区别并非仅仅是存储过程级重编译和语句级重编译的…
sql中有一些保留字,当你的字段名是它的保留字时,这个时候sql语句的字段不加``就会报错…
先说说的场景 老项目,因为服务器升级了mysql数据库版本,从5.7.13升到8.0.15 然而代码里面有直连数据的访问,通过执行存储过程来查询数据的业务,此时抛出异常   Table 'mysql.proc' doesn't exist 排查,用 Navicat mysql 工具看, 8.0.15 的数据库的确没有了这个表,以前7点几版本有这个表... 经过几方努力   排查出因为数据层引用的 MySql.Data.dll 这个插件版本过低导致的,所以更新官网最新的  MySql.Data.d…
--SQL查询优化 尽量避免使用or,not,distinct运算符,简化连接条件 /*Or运算符*/ use db_business go select * from 仓库 where 城市='北京' or 城市='青岛' --包含or运算符 sql将不使用索引,影响速度 /*In运算符*/ use db_business go select * from 仓库 where 城市 in('北京' ,'青岛') --有效提高运算效率 /*not运算符*/ use db_business go s…
Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 6------------------- 29 存储过程和触发器 存储过程由一组预先编辑好的SQL语句组成.将其放在服务器上.由用户通过指定存储过程的名称来执行. 触发器是一种特殊类型的存储过程,它不是由用户直接调用的,而是当用户对数据进行操作(包括数据的INSERT ,UPDATE,DELETE操作)时自动执行. 29.1创建.执行.删除简单的存储过程. CREATE…
SELECT MO.MO_ID, MO.ITEM, MO.QTYORDERED, MO.PLANNEDSTARTDATE, BR.MAXLOTSIZE FROM TEMP_MO MO, (SELECT PRODUCED_ITEM_ID ITEM_ID, SITEID, ), , , MAXLOTSIZE)) MAXLOTSIZE FROM IN_ITEMBOMROUTING, TEMP_MO MO , ) ') , ) ') , ) ') AND TRIM(IIS.PROC_TYPE) = 'E…
--创建和执行事后触发器 --更新仓库备份表中记录时自动创建数据表且插入三条记录 create trigger db_trigger1 on 仓库备份 for update as begin if Exists(select * from sys.sysobjects where id=OBJECT_ID('db_tabletriuser')) drop table db_tabletriuser else begin create table db_tabletriuser( userid i…
-- 创建存储过程 DELIMITER $       -- 声明存储过程的结束符 CREATE PROCEDURE pro_test()           --存储过程名称(参数列表) BEGIN             -- 开始 -- 可以写多个sql语句;          -- sql语句+流程控制 SELECT * FROM employee; END $            -- 结束 结束符 -- 执行存储过程 CALL pro_test();          -- CAL…