我目前正在编写一个通用 SQL Server 脚本来清理具有或多/少相同表结构的不同数据库。如果该表存在于数据库中,此脚本要求我从该表中擦除某些数据。这里是脚本示例
IF EXISTS( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'TAB1')
IF EXISTS( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'TAB1' AND COLUMN_NAME = 'COL1')
delete TAB1 where COL1 not in (select COL2 from TAB2);
作为程序员,我知道如果两个条件块都为假,删除命令将不会被执行。但是,当我在 SQL 中运行它时,它会返回
列名“COL1”无效。
可能我的方法是错误的。谁能指出我正确的方向?