Mos*_*aou 2 sql sql-server temp-tables sql-server-2012
我们在升级到SQL Server 2012时遇到问题.我使用以下脚本创建过去在SQL Server 2008 R2上运行良好的临时表,但现在它在2012年生成错误:
if (OBJECT_ID( 'tempdb..#idstable') > 0)
truncate table #idstable
else
create table #idstable (id int not null)
Run Code Online (Sandbox Code Playgroud)
抛出的错误是
数据库中已经有一个名为"#idstable"的对象.
这显然不是我第一次使用脚本时抛出的(在同一个事务中).
任何的想法?谢谢!
在SQL Server 2012中,#temp表创建为负数object_id,因此您的脚本将无法正常工作.最安全的方法是:
IF OBJECT_ID( 'tempdb..#idstable') IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
虽然你的脚本无论如何都会失败,如果它是一个批处理的一部分.解析器不允许您尝试两次创建相同的#temp表.
| 归档时间: |
|
| 查看次数: |
2851 次 |
| 最近记录: |