我正在尝试在删除特定表之前检查该表是否存在。
例如:
IF EXISTS(SELECT 1 FROM sys.tables WHERE name = 'table1')
BEGIN
DROP TABLE schema1.table1
END
即使DROP指定了架构,如何更改EXISTS
检查也包括schema1?
答案 0 :(得分:0)
JOIN
至sys.schemas
:
IF EXISTS (SELECT 1
FROM sys.tables t
JOIN sys.schemas s ON t.schema_id = s.schema_id
WHERE t.[name] = N'YourTable'
AND s.[name] = N'YourSchema') BEGIN...
答案 1 :(得分:0)
我个人更喜欢使用
IF (OBJECT_ID('Data.Capture') IS NOT NULL)
BEGIN
PRINT 'Exists'
END
这不仅使我不仅可以检查表,还可以检查其他任何对象,同时保留了标准的对象存在检查实践