SQL SERVER 数据库 怎么设定多用户同时更新操作

一把菜刀_ 2017-09-20 10:29:38
是这样,SQL SERVER的 数据库 放到本地的PC 上,开发的工具可以在各个用户的电脑上使用,但是现在不能同时使用更新数据到数据库,是该怎么修改数据库还是本地的PC 不支持多用户操作数据库更新 ?
...全文
1089 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2017-09-20
  • 打赏
  • 举报
回复
看下两个表有没有触发器
一把菜刀_ 2017-09-20
  • 打赏
  • 举报
回复
引用 12 楼 zengertao 的回复:
[quote=引用 10 楼 zjp6571657 的回复:] [quote=引用 6 楼 zengertao 的回复:] [quote=引用 5 楼 zjp6571657 的回复:] [quote=引用 2 楼 sinat_28984567 的回复:] 是只能一个连接,还是可以多个连接,但是每个连接不能同时操作同一个数据库表? 如果是后者可以使用事务+锁来实现
1.可以多个用户连接访问,但是不能同时操作同一个数据库里不同的表。 2.使用事务+锁来实现,是通过怎么改变,程序中改代码吗还是怎么操作?不好意思问得多,实在不太懂[/quote] 什么叫不能操作,连select都不行嘛?看看用户权限是不是都给了[/quote] 是可以的。不好意思是我没描述清楚,是这样的,开发的工具需要连接这个数据库,A 用户通过工具更新数据到数据库中的T1表,B用户通过工具更新数据到数据库中的T2表,现在A,B用户同时操作更新不同表数据的话,虽然同时操作了,结果是只能等一个完成后才能执行另一个用户的操作。[/quote] T2的中间过程有没有用到T1表?[/quote] 不会,两个表没有关联操作。
一把菜刀_ 2017-09-20
  • 打赏
  • 举报
回复
引用 9 楼 z10843087 的回复:
[quote=引用 5 楼 zjp6571657 的回复:] [quote=引用 2 楼 sinat_28984567 的回复:] 是只能一个连接,还是可以多个连接,但是每个连接不能同时操作同一个数据库表? 如果是后者可以使用事务+锁来实现
1.可以多个用户连接访问,但是不能同时操作同一个数据库里不同的表。 2.使用事务+锁来实现,是通过怎么改变,程序中改代码吗还是怎么操作?不好意思问得多,实在不太懂[/quote] 我觉得你这个其实不是怎么设定的问题,应该是sql语句和数据库锁的问题。操作同一库的不同表正常来讲是可以的。多人去更新时,如果不能操作是提示的什么。截图来看看,最好有对应的语句。[/quote] 先调试看看,谢谢指导回复
吉普赛的歌 2017-09-20
  • 打赏
  • 举报
回复
引用 10 楼 zjp6571657 的回复:
是这样的,开发的工具需要连接这个数据库,A 用户通过工具更新数据到数据库中的T1表,B用户通过工具更新数据到数据库中的T2表,现在A,B用户同时操作更新不同表数据的话,虽然同时操作了,结果是只能等一个完成后才能执行另一个用户的操作。
不相干的表肯定是不会相互影响的,如#12如说, 应该是两者有相互的干扰。 你把更新的代码贴出来看看。
繁花尽流年 2017-09-20
  • 打赏
  • 举报
回复
引用 10 楼 zjp6571657 的回复:
[quote=引用 6 楼 zengertao 的回复:] [quote=引用 5 楼 zjp6571657 的回复:] [quote=引用 2 楼 sinat_28984567 的回复:] 是只能一个连接,还是可以多个连接,但是每个连接不能同时操作同一个数据库表? 如果是后者可以使用事务+锁来实现
1.可以多个用户连接访问,但是不能同时操作同一个数据库里不同的表。 2.使用事务+锁来实现,是通过怎么改变,程序中改代码吗还是怎么操作?不好意思问得多,实在不太懂[/quote] 什么叫不能操作,连select都不行嘛?看看用户权限是不是都给了[/quote] 是可以的。不好意思是我没描述清楚,是这样的,开发的工具需要连接这个数据库,A 用户通过工具更新数据到数据库中的T1表,B用户通过工具更新数据到数据库中的T2表,现在A,B用户同时操作更新不同表数据的话,虽然同时操作了,结果是只能等一个完成后才能执行另一个用户的操作。[/quote] T2的中间过程有没有用到T1表?
一把菜刀_ 2017-09-20
  • 打赏
  • 举报
回复
引用 8 楼 sinat_28984567 的回复:
[quote=引用 5 楼 zjp6571657 的回复:] [quote=引用 2 楼 sinat_28984567 的回复:] 是只能一个连接,还是可以多个连接,但是每个连接不能同时操作同一个数据库表? 如果是后者可以使用事务+锁来实现
1.可以多个用户连接访问,但是不能同时操作同一个数据库里不同的表。 2.使用事务+锁来实现,是通过怎么改变,程序中改代码吗还是怎么操作?不好意思问得多,实在不太懂[/quote] 程序里也可以加事务。 如果是在数据库里,可以使用sql,例如这样测试一下:
begin tran 
UPDATE TEST SET ID=1
waitfor delay '00:00:05'    --延迟5秒提交事务
commit tran 
然后再另一窗口执行:
UPDATE TEST SET ID=2
这个语句是在5秒之后才能执行的。 [/quote] 谢谢版主回复。 可以按照试试,谢谢指导。
一把菜刀_ 2017-09-20
  • 打赏
  • 举报
回复
引用 6 楼 zengertao 的回复:
[quote=引用 5 楼 zjp6571657 的回复:] [quote=引用 2 楼 sinat_28984567 的回复:] 是只能一个连接,还是可以多个连接,但是每个连接不能同时操作同一个数据库表? 如果是后者可以使用事务+锁来实现
1.可以多个用户连接访问,但是不能同时操作同一个数据库里不同的表。 2.使用事务+锁来实现,是通过怎么改变,程序中改代码吗还是怎么操作?不好意思问得多,实在不太懂[/quote] 什么叫不能操作,连select都不行嘛?看看用户权限是不是都给了[/quote] 是可以的。不好意思是我没描述清楚,是这样的,开发的工具需要连接这个数据库,A 用户通过工具更新数据到数据库中的T1表,B用户通过工具更新数据到数据库中的T2表,现在A,B用户同时操作更新不同表数据的话,虽然同时操作了,结果是只能等一个完成后才能执行另一个用户的操作。
OwenZeng_DBA 2017-09-20
  • 打赏
  • 举报
回复
引用 5 楼 zjp6571657 的回复:
[quote=引用 2 楼 sinat_28984567 的回复:] 是只能一个连接,还是可以多个连接,但是每个连接不能同时操作同一个数据库表? 如果是后者可以使用事务+锁来实现
1.可以多个用户连接访问,但是不能同时操作同一个数据库里不同的表。 2.使用事务+锁来实现,是通过怎么改变,程序中改代码吗还是怎么操作?不好意思问得多,实在不太懂[/quote] 我觉得你这个其实不是怎么设定的问题,应该是sql语句和数据库锁的问题。操作同一库的不同表正常来讲是可以的。多人去更新时,如果不能操作是提示的什么。截图来看看,最好有对应的语句。
二月十六 2017-09-20
  • 打赏
  • 举报
回复
引用 5 楼 zjp6571657 的回复:
[quote=引用 2 楼 sinat_28984567 的回复:] 是只能一个连接,还是可以多个连接,但是每个连接不能同时操作同一个数据库表? 如果是后者可以使用事务+锁来实现
1.可以多个用户连接访问,但是不能同时操作同一个数据库里不同的表。 2.使用事务+锁来实现,是通过怎么改变,程序中改代码吗还是怎么操作?不好意思问得多,实在不太懂[/quote] 程序里也可以加事务。 如果是在数据库里,可以使用sql,例如这样测试一下:
begin tran 
UPDATE TEST SET ID=1
waitfor delay '00:00:05'    --延迟5秒提交事务
commit tran 
然后再另一窗口执行:
UPDATE TEST SET ID=2
这个语句是在5秒之后才能执行的。
一把菜刀_ 2017-09-20
  • 打赏
  • 举报
回复
引用 4 楼 qq_37170555 的回复:
首先所有电脑要在同一个内网中,其次右键数据库选择属性;把下面图片圈圈的地方改成我现在这个Multi_User,这样才可以多用户访问
谢谢回复。 这个地方已经是MULTI_USER。
繁花尽流年 2017-09-20
  • 打赏
  • 举报
回复
引用 5 楼 zjp6571657 的回复:
[quote=引用 2 楼 sinat_28984567 的回复:] 是只能一个连接,还是可以多个连接,但是每个连接不能同时操作同一个数据库表? 如果是后者可以使用事务+锁来实现
1.可以多个用户连接访问,但是不能同时操作同一个数据库里不同的表。 2.使用事务+锁来实现,是通过怎么改变,程序中改代码吗还是怎么操作?不好意思问得多,实在不太懂[/quote] 什么叫不能操作,连select都不行嘛?看看用户权限是不是都给了
一把菜刀_ 2017-09-20
  • 打赏
  • 举报
回复
引用 2 楼 sinat_28984567 的回复:
是只能一个连接,还是可以多个连接,但是每个连接不能同时操作同一个数据库表? 如果是后者可以使用事务+锁来实现
1.可以多个用户连接访问,但是不能同时操作同一个数据库里不同的表。 2.使用事务+锁来实现,是通过怎么改变,程序中改代码吗还是怎么操作?不好意思问得多,实在不太懂
听雨停了 2017-09-20
  • 打赏
  • 举报
回复
首先所有电脑要在同一个内网中,其次右键数据库选择属性;把下面图片圈圈的地方改成我现在这个Multi_User,这样才可以多用户访问
一把菜刀_ 2017-09-20
  • 打赏
  • 举报
回复
引用 1 楼 zengertao 的回复:
1.确定数据库是不是设为了多用户模式 2.数据库是不是开放了远程访问 3.电脑有没有防火墙什么的限制了访问
谢谢回复。 1.怎么查看是不是设定了多用户模式? 2.开放了,正常单个用户可以访问和更新数据。 3.没有限制。
二月十六 2017-09-20
  • 打赏
  • 举报
回复
是只能一个连接,还是可以多个连接,但是每个连接不能同时操作同一个数据库表? 如果是后者可以使用事务+锁来实现
繁花尽流年 2017-09-20
  • 打赏
  • 举报
回复
1.确定数据库是不是设为了多用户模式 2.数据库是不是开放了远程访问 3.电脑有没有防火墙什么的限制了访问
PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,现在已经更名为PostgreSQL. PostgreSQL支持大部分SQL标准并且提供了许多其它现代特性:复杂查询、外键、触发器、视图、事务完整性等。PostgreSQL 是一个免费的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。 Inprise 的 InterBase 以及SAP等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。从技术角度来讲,PostgreSQL 采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。本课程作为PostgreSQL数据库管理一,主要讲解以下内容: 1.     PostgreSQL 存储过程基本知识2.     PostgreSQL 用户自定义函数3.     PostgreSQL 控制结构4.     PostgreSQL 游标和存储过程5.     PostgreSQL 索引6.     PostgreSQL 视图7.     PostgreSQL 触发器8.     PostgreSQL 角色、备份和还原9.     PostgreSQL 表空间管理

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧