
实际上,MySQL 会保留创建存储过程时的环境。可以通过以下示例来理解,在该示例中我们使用两个条来连接字符串。这仅在 SQL 模式为 ansi 时才合法。但是,如果我们将 SQL 模式更改为非 ansi,该过程仍然有效,就好像原始设置仍然为 true 一样。
示例
mysql> Set sql_mode = 'ansi'//
Query OK, 0 rows affected, 1 warning (0.14 sec)
mysql> Create Procedure Con_string()
-> SELECT 'a'||'b'//
Query OK, 0 rows affected (0.12 sec)
mysql> Call Con_string ();
+----------+
| 'a'||'b' |
+----------+
| ab |
+----------+
1 row in set (0.05 sec)
Query OK, 0 rows affected (0.05 sec)
mysql> Set sql_mode = '';
Query OK, 0 rows affected (0.00 sec)
mysql> Call Con_string();
+----------+
| 'a'||'b' |
+----------+
| ab |
+----------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)上面的结果集显示,即使将 SQL 模式更改为非 ansi 后,过程 Con_string() 仍会生成与 SQL 模式仍然是 ansi 相同的结果。但是新程序将不接受两个条,因为我们已将 SQL 模式更改为非 ansi。
集企业自助建站、网络营销、商品推广于一体的系统 功能说明: 1、系统采用Microsoft SQL Server大型数据库支持,查询数据库用的全是存储过程,速度和性能极好。开发环境是vs.net,采用4层结构,具有很好的可维护性和可扩冲性。 2、用户注册和登陆 未注册用户只具备浏览商品、新闻和留言功能;要采购商品,需接受服务协议并填写相关注册信息成为正式用户后方可进行,以尽可能减少和避免无效
mysql> create procedure Con_string1()
-> Select 'a'||'b'//
Query OK, 0 rows affected (0.02 sec)
mysql> Call Con_string1()//
+----------+
| 'a'||'b' |
+----------+
| 0 |
+----------+
1 row in set (0.00 sec)
Query OK, 0 rows affected, 2 warnings (0.00 sec)









