SQL Server 判断表名称、索引、表字段是否存在

1.判断索引是否存在

ps:@tableName 表名称, @indexName 索引名

IF EXISTS (SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(@tableName, N'U') and NAME=@indexName)
BEGIN
    DROP INDEX @indexName ON @tableName
END

2.判断表名称是否存在

①:判断临时表是否存在

IF OBJECT_ID(N'tempdb..#temp', N'U') IS NOT NULL
BEGIN
  DROP TABLE #temp;--临时表删除
END

创建临时表

 SELECT * INTO #temp FROM @tableName --将 表中数据存入临时表 #temp 中

②判断表是否存在

--方法一
IF EXISTS(SELECT name FROM [sysobjects] WHERE name = '@tableName')
BEGIN
    PRINT '已存在'
END
ELSE
BEGIN
    PRINT '不存在'
END

--方法二
IF OBJECT_ID (N'@tableName', N'U') IS NOT NULL
BEGIN
    PRINT '已存在'
END
ELSE
BEGIN
    PRINT '不存在'
END

 ③判断表字段是否存在

IF COL_LENGTH('@tableName', '字段名') IS NULL
BEGIN
  PRINT '不存在'
END
原文地址:https://www.cnblogs.com/xy0710/p/11393478.html