我有一个DTS包,删除一个表,然后创建它并填充它,但有时会发生一些事情,并且包在drop table之后失败.如果它重新运行则失败,因为尚未创建表.
像MySQL这样的SQLServer 2000有"if exists"吗?
谢谢.
Bob*_*bst 33
或者更快:
IF OBJECT_ID('temp_ARCHIVE_RECORD_COUNTS') IS NOT NULL  
  DROP TABLE temp_ARCHIVE_RECORD_COUNTS  
Bri*_*ndy 10
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TableName]') AND type in (N'U'))
DROP TABLE TableName;
GO
您可以检查在sys.objects中表这里的类型定义列表,如果你想检查是否存在于数据库中的其他对象.
还没有人提到过这种方法:
if exists (select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME='MyTable') 
begin 
    drop table MyTable
end
这是最便携的方法 - 它至少可以在MSSQL2000上运行到MSSQL2008.
INFORMATION_SCHEMA表是SQL-92标准的一部分.
| 归档时间: | 
 | 
| 查看次数: | 33596 次 | 
| 最近记录: |