两个存储过程,里面都使用了相同名称的本地临时表。当在一个SPID同时调用这2个存储过程时是否会产生混乱?

解决方案 »

  1.   

    不会产生混乱.系统会根据spid管理各自创建的临时表.
      

  2.   

    现在的问题是,应用程序连上数据库后调用的存储过程对应的SPID都是一个值。
    在同一会话内本地临时表名一样不会混乱么?
      

  3.   

    只要不是在单个存储过程或者批处理中创建多个临时表,就没必要担心临时表同名问题。
    如果本地临时表由存储过程创建或由多个用户同时执行的应用程序创建,则数据库引擎必须能够区分由不同用户创建的表。 为此,数据库引擎在内部为每个本地临时表的表名追加一个数字后缀。 存储在 tempdb 的 sysobjects 表中的临时表,其全名由 CREATE TABLE 语句中指定的表名和系统生成的数字后缀组成。 为了允许追加后缀,为本地临时表指定的 table_name 不能超过 116 个字符。