Ruby on Rails中执行存储过程和指定SQL语句的方法
2010-03-18 21:01
746 查看
在使用Rails的ActiveRecord对数据库进行更新操作时,如果使用update(id,:field =>value) 方法更新数据,则此时rails并不是执行以下过程:
1. Update table set field = value where id = id 而是实际执行了 2. Update table set field = value , field2 = value2 … where id = id 这意味着当数据库中这张表拥有50个字段的时候,Rails就分别更新了50个字段,只是将程序指定的field替换成了指定的value,其它没有指定的field一般不是我们所期望的执行更新的。 解决这个问题的方法是使用ActiveRecord::Base的connection.execute方法,这个方法可以直接写更新数据库的sql语句,当然也可以执行SQL Server存储过程。使用以下语句就可以执行1中的数据库操作: Connection.execute(“update table set field = value where id = id”)
1. Update table set field = value where id = id 而是实际执行了 2. Update table set field = value , field2 = value2 … where id = id 这意味着当数据库中这张表拥有50个字段的时候,Rails就分别更新了50个字段,只是将程序指定的field替换成了指定的value,其它没有指定的field一般不是我们所期望的执行更新的。 解决这个问题的方法是使用ActiveRecord::Base的connection.execute方法,这个方法可以直接写更新数据库的sql语句,当然也可以执行SQL Server存储过程。使用以下语句就可以执行1中的数据库操作: Connection.execute(“update table set field = value where id = id”)
相关文章推荐
- MySQL 存储过程中执行动态SQL语句的方法
- MySQL 存储过程中执行动态SQL语句的方法
- MySQL存储过程中实现执行动态SQL语句的方法
- EF增删查改加执行存储过程和sql语句,多种方法汇总
- MySQL存储过程中实现执行动态SQL语句的方法
- EF增删查改加执行存储过程和sql语句,多种方法汇总
- 用存储过程动态生成sql语句并执行
- IQ存储过程中执行有结果集返回的动态SQL的调用方法
- mysql存储过程执行动态sql语句
- 在SQL存储过程内拼条件,动态生成SQL语句执行
- Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程
- MySql带参数的存储过程编写(动态执行SQL语句)
- Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程
- SQL存储过程前面有语句set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ,这是什么意思,数据库存储过程前
- [转]SQL Server中获得EXEC后面的sql语句或者存储过程的返回值的方法
- 在SQL SERVER中定时执行SQL语句,或者存储过程
- 一个存储过程:带参数动态执行sql语句:Execute Immediate
- SQL存储过程事务和优化方法(包括查询方式语句结合)
- 实现分析sql语句执行过程和编译时间的方法
- mysql 存储过程动态执行sql语句