当前位置:主页>仓库管理软件> 列表

问一个跟临时表有关的问题,急~~~~~~~~~~~~~~~ 找医药进销存管理软件

进销存软件版1楼: 我在程序中用到了临时表来处理查询结果,现在考虑到多个用户同时使用这个查询功能,若临时表写成了如下语句:

select * into #tb from talbl

那我想这样的话第一个人使用的时候用到了#tb 第二个人使用的时候就不对了,因为这时候
#tb已经被第一个人在操作了,怎么避免这个错误情况呢,有什么好的办法吗???

2楼: 你用存储过程啊,你在返回的时候用一张临时表就可以了啊! 如医药进销存管理软件

3楼: 建議你動態給定表名就可以了:
例如:
用存儲過程來實現:
CREATE PROCEDURE Get_Pub_Bill_No
@TableName VARCHAR(100)
AS
DECLARE @tmp VARCHAR(3000)
SET @tmp= select * into ''+@TableName+'' from talbl
EXEC (@tmp)
記住你傳過來的參數應是:''#sss''這樣的形式給@tablename。

4楼: 在delphisuccess上修改一下才會顯示數據或減少沖突:
CREATE PROCEDURE Get_Pub_Bill_No @TableName VARCHAR(100) AS
DECLARE @tmp VARCHAR(3000)
SET @tmp= ''select * into ''+@TableName+'' from talbl''


EXEC (@tmp)
EXEC (''Select * from ''+@TableName)
DROP Table @TableName
GO

5楼: 如果本地临时表由存储过程创建或由多个用户同时执行的应用程序创建,则 SQL Server 必须能够区分由不同用户创建的表。为此,SQL Server 在内部为每个本地临时表的表名追加一个数字后缀。
这是SQl的联机帮助,本地临时表每个人访问的应该不一样

6楼: 同意勇者

进销存软件版7楼: 楼主,你的临时表是建立在内存里的还是在已有的数据库里增加一个临时的..我最近也在搞这类程序,不过我是在内存里建立的,也是在临时表查询的问题上百思不得其解...就算切磋也好,大家交流一下.给不给分的不介意.我是想问一下,如果是用TADODataSet创建的内存临时表,我要怎么查询..

8楼: 顶一下!

9楼: 也想听停....顶一下!

10楼: 顶

11楼: 顶!