一个存储过程被几个客户同时调用会有什么后果? --如果有并发操作,要写事务,锁定表 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我问过同样问题,已经得到解决*****************************************************(1)多用户环境(2)目的:根据表名与字段名以及ID号取得某字段值CREATE PROCEDURE bdms_GetFiledValue@strTableName nvarchar(30),@strFieldName1 nvarchar(30),@strFieldName2 nvarchar(30),@strValue nvarchar(4000) output ASset nocount ondeclare @sql nvarchar(1000)create table #temp(strValue nvarchar(1000))insert #temp exec('select ' + @strFieldName1 + ' from ' +@strTableName+N' where ' +@strFieldName2+N' = '+@lngID )select @strValue=(select * from #temp)drop table #tempGO**********************************************************************************我的问题是:(1)多用户环境下,如果第一个人正在执行本过程,而且已创建了一个临时表#temp,这时如果另一个人也来执行本过程,因为调用的是同一个存储过程,因此执行的是相同的代码,那么当每二个人在试图创建临时表#temp时,由于第一个人已创建了临时表#temp而且没有删除,因此存在同名的情况因而会出错.这样做假设也许比较极端,但也不能说完全没有可能.怎么办?(2)此问题如果不用临时表,用游标也行,但同在存在多用户环境下的同名游标情况.怎么办?(3)SQL SERVER 的运行机制我不是很清楚,是不是某个用户在调用某个存储过程时,只要该存储过程未执行完,该存储过程都处于锁定状态?也就是说,是不是不会出现同一时间多个用户执行同一存储过程的情况?****************************************************************你不用担心这个问题,存储过程都会处于锁定状态,直到用户释放时**********************************************************以上是lsp69(浪子神剑)的答复.怎么样?分是加给我还是加给lsp69(浪子神剑)呢?呵呵 求SQL2000下的一个SQL函数写法 存储过程中select max(uNo) from userT 安全吗? 每天一问:存储过程 自动编号的问题,如何获取到当天的最大编号? 简单问题,希望进来拿分 MS AdoDataGrid (SP6) 控件,记录非常多时,拖动不起作用,有什么办法,或合适的控件吗? 用sql发邮件稳定性怎么样?最好能给出一些依据 SQL数据库的扩展名是什么?再现等待 数据库结构的设计 将SQL Server数据库备份及恢复彻底研究,欢迎讨论!!! Access 的问题 如何解决TEXT字段的排序和比较问题 TransformCopy "DirectCopyXform"
(1)多用户环境
(2)目的:根据表名与字段名以及ID号取得某字段值CREATE PROCEDURE bdms_GetFiledValue@strTableName nvarchar(30),
@strFieldName1 nvarchar(30),
@strFieldName2 nvarchar(30),
@strValue nvarchar(4000) output AS
set nocount ondeclare @sql nvarchar(1000)create table #temp(strValue nvarchar(1000))
insert #temp exec('select ' + @strFieldName1 + ' from ' +@strTableName
+N' where ' +@strFieldName2+N' = '+@lngID )
select @strValue=(select * from #temp)
drop table #tempGO
**********************************************************************************我的问题是:
(1)多用户环境下,如果第一个人正在执行本过程,而且已创建了一个临时表#temp,这时如果另一个人也来执行本过程,因为调用的是同一个存储过程,因此执行的是相同的代码,那么当每二个人在试图创建临时表#temp时,由于第一个人已创建了临时表#temp而且没有删除,因此存在同名的情况因而会出错.这样做假设也许比较极端,但也不能说完全没有可能.怎么办?(2)此问题如果不用临时表,用游标也行,但同在存在多用户环境下的同名游标情况.怎么办?(3)SQL SERVER 的运行机制我不是很清楚,是不是某个用户在调用某个存储过程时,只要该存储过程未执行完,该存储过程都处于锁定状态?也就是说,是不是不会出现同一时间多个用户执行同一存储过程的情况?
****************************************************************
你不用担心这个问题,存储过程都会处于锁定状态,直到用户释放时**********************************************************以上是lsp69(浪子神剑)的答复.怎么样?分是加给我还是加给lsp69(浪子神剑)呢?呵呵