我要做一个投票的功能
执行下边这条SQL语句来更新票数
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
“新值” 就是我想要更新的票数,当点击投票按钮的时候,先获取当前票数,然后+1
再执行SQL语句更新到数据库。我想的是这样实现这个功能,但是会不会出现 用户同时投票 造成数据不准确?
执行下边这条SQL语句来更新票数
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
“新值” 就是我想要更新的票数,当点击投票按钮的时候,先获取当前票数,然后+1
再执行SQL语句更新到数据库。我想的是这样实现这个功能,但是会不会出现 用户同时投票 造成数据不准确?
解决方案 »
- 打包web
- linq 对List操作问题,大神请进...
- 求助C#调用32位动态库函数 制作明华读写器读写操作
- NHibernate如何映射组合键(composite-id)
- 数据库修改,更新问题??
- ListBox 设置多选的问题
- 有誰用過ResourceManager.Getstring()函數取出對應語言的資源文件 resx中的資源
- 麻烦各位提供点资料
- 请问如何在“datagridview”的单元格中填写数据时 动态改变 “行合计” 和 “列合计”!!!
- 我现在有一个项目 关于 C# EXCEL 的存取
- 关于Remoting服务端触发事件,发生了一格奇妙的现象
- *.exe可以正确运行,但是制作好的安装程序不能正确运行,涉及oracle数据库?
控制由连接发出的所有 Microsoft® SQL Server™ SELECT 语句的默认事务锁定行为。语法
SET TRANSACTION ISOLATION LEVEL
{ READ COMMITTED
| READ UNCOMMITTED
| REPEATABLE READ
| SERIALIZABLE
}参数
READ COMMITTED指定在读取数据时控制共享锁以避免脏读,但数据可在事务结束前更改,从而产生不可重复读取或幻像数据。该选项是 SQL Server 的默认值。READ UNCOMMITTED执行脏读或 0 级隔离锁定,这表示不发出共享锁,也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。REPEATABLE READ锁定查询中使用的所有数据以防止其他用户更新数据,但是其他用户可以将新的幻像行插入数据集,且幻像行包括在当前事务的后续读取中。因为并发低于默认隔离级别,所以应只在必要时才使用该选项。SERIALIZABLE在数据集上放置一个范围锁,以防止其他用户在事务完成之前更新数据集或将行插入数据集内。这是四个隔离级别中限制最大的级别。因为并发级别较低,所以应只在必要时才使用该选项。该选项的作用与在事务内所有 SELECT 语句中的所有表上设置 HOLDLOCK 相同。注释
一次只能设置这些选项中的一个,而且设置的选项将一直对那个连接保持有效,直到显式更改该选项为止。这是默认行为,除非在语句的 FROM 子句中在表级上指定优化选项。SET TRANSACTION ISOLATION LEVEL 的设置是在执行或运行时设置,而不是在分析时设置。示例
下例为会话设置 TRANSACTION ISOLATION LEVEL。对于每个后续 Transact-SQL 语句,SQL Server 将所有共享锁一直控制到事务结束为止。SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
GO
BEGIN TRANSACTION
SELECT * FROM publishers
SELECT * FROM authors
...
COMMIT TRANSACTION
update 表名称 set 列名称 = (select 列名称 from 表名称 where 列名称 = 某值) where 列名称 = 某值