Sql 许多用户可以打开一个SP,其中包含一个诱人的选项吗?

Sql 许多用户可以打开一个SP,其中包含一个诱人的选项吗?,sql,sql-server,database,stored-procedures,Sql,Sql Server,Database,Stored Procedures,用户登录到他的系统并打开我的程序后,他可以根据自己的WindowsUsername查看数据库中的数据(我为此编写了一个小存储过程) 此数据来自带有临时表(#temp)的查询。我现在的问题是,如果许多用户使用这个程序,在打开它之后,他们都会尝试在存储过程中构建#temp表。这可能吗??因为如果我尝试用相同的名称构建一个诱惑,服务器会给我一个错误。我是否必须根据登录的用户给出动态的诱人的名字???还是有其他更好的选择? MS-SQL Server 每个会话/连接都有一个本地临时表(一个#TableN

用户登录到他的系统并打开我的程序后,他可以根据自己的WindowsUsername查看数据库中的数据(我为此编写了一个小存储过程)

此数据来自带有临时表(#temp)的查询。我现在的问题是,如果许多用户使用这个程序,在打开它之后,他们都会尝试在存储过程中构建#temp表。这可能吗??因为如果我尝试用相同的名称构建一个诱惑,服务器会给我一个错误。我是否必须根据登录的用户给出动态的诱人的名字???还是有其他更好的选择? MS-SQL Server

  • 每个会话/连接都有一个本地临时表(一个
    #TableName
  • 许多用户无法共享会话/连接
因此,存储过程中的本地临时表对于并发用户来说是安全的

另一方面,如果使用全局临时表(
##TableName
),则它对world+dog可见

来自(我的粗体)

有两种类型的临时表:本地表和全局表本地临时表仅在与SQL Server实例的连接过程中对其创建者可见,与第一次创建或引用表时相同。本地临时表在用户断开与SQL Server实例的连接后被删除。全局临时表在创建后对任何用户和任何连接都可见,并且在所有引用该表的用户断开与SQL Server实例的连接时被删除


如果它是存储过程(SP)中的真实临时表,则临时表将被创建/仅在SP执行期间存在。如果SP由多个用户同时运行多次,则临时表将被创建多次并存储在每个用户自己的内存空间中

返回给每个用户的结果都是唯一的,并且temp表的每个副本都不会从其他sp调用中看到temp表

如果在查询窗口中通过创建两次临时表进行测试,则会出现错误


为了证明上述方法有效,请计划SP同时运行两次并传递不同的用户id。您将得到两个不同的结果集。

我们在这里讨论的是什么RDBMS?我正在与ms sql server合作