下面的代码可以运行并且非常精确,但是可以这样做而不是其他“标准”方式吗?
--Drop table if exists
begin try
drop table #temp
end try
begin catch
print 'table does not exist'
end catch
--Create table
create table #temp(a int, b int)
答案 0 :(得分:4)
最好使用
If Object_Id('Tempdb..#temp') Is Not Null
Drop Table #temp
create table #temp
当您打算最终创建一个#temp表时,不需要尝试catch来提供#temp Table不存在的错误消息
如果create语句在try中,它可能有一些用处
答案 1 :(得分:0)
使用EXISTS
语句,IF
表存在,然后只删除表。否则创建
直接表:
BEGIN TRY
IF Object_Id('Tempdb..#temp') Is Not Null
DROP Table #temp
CREATE table #temp
END try
BEGIN CATCH
PRINT 'table does not exist'
END CATCH