Joh*_*tos 5 sql-server stored-procedures temp-tables
在我的 SQL Server 2012 环境中,我创建了一系列存储过程,它们在它们之间传递预先存在的临时表(我在这里尝试了不同的架构,但由于需求/过程的性质而无法绕过它)。
我想做的是在存储过程中检查是否已经创建了临时表,如果没有,则创建它。
我当前的 SQL 如下所示:
IF OBJECT_ID('tempdb..#MyTable') IS NULL
CREATE TABLE #MyTable
(
Col1 INT,
Col2 VARCHAR(10)
...
);
Run Code Online (Sandbox Code Playgroud)
但是当我在表已经存在的情况下尝试运行它时,我收到错误消息
数据库中已经有一个名为“#MyTable”的对象
因此,它似乎并没有简单地忽略 If 语句中的那些行。
有没有办法做到这一点 - 如果临时表尚不存在,则创建一个临时表,否则,使用内存中已有的表?
谢谢!
更新:
无论出于何种原因,按照@RaduGheorghiu 从评论中提出的建议,我发现系统创建了一个临时表,其名称类似于 dbo.#MyTable________________________________________________0000000001B1
这就是我找不到的原因吗?有什么办法可以改变吗?这对我来说是新的......
归档时间: |
|
查看次数: |
7466 次 |
最近记录: |