即使发现错误,也要继续在SQL中执行代码
假设我在任何只想删除三列的表中执行以下SQL代码:即使发现错误,也要继续在SQL中执行代码,sql,ms-access,Sql,Ms Access,假设我在任何只想删除三列的表中执行以下SQL代码: ALTER TABLE DROP COLUMN C1 ALTER TABLE DROP COLUMN C2 ALTER TABLE DROP COLUMN C3 现在,如果名为C2的列不存在,代码将停止并返回错误 我想知道是否有任何方法可以继续运行代码,因此它会删除C3列,稍后返回错误/信息 谢谢。使用下面的sql获得所需的结果: SET STR = '' IF EXISTS( SELECT * FROM sys.column
ALTER TABLE DROP COLUMN C1
ALTER TABLE DROP COLUMN C2
ALTER TABLE DROP COLUMN C3
现在,如果名为C2的列不存在,代码将停止并返回错误
我想知道是否有任何方法可以继续运行代码,因此它会删除C3列,稍后返回错误/信息
谢谢。使用下面的sql获得所需的结果:
SET STR = ''
IF EXISTS(
SELECT *
FROM sys.columns
WHERE Name = N'c1'
AND Object_ID = Object_ID(N'table1'))
BEGIN
ALTER TABLE table1 DROP COLUMN C1
END
ELSE
SET STR = concat(STR,'C1 does not exist.')
END
IF EXISTS(
SELECT *
FROM sys.columns
WHERE Name = N'c2'
AND Object_ID = Object_ID(N'table1'))
BEGIN
ALTER TABLE table1 DROP COLUMN C2
END
ELSE
SET STR = concat(STR,'C2 does not exist.')
END
IF EXISTS(
SELECT *
FROM sys.columns
WHERE Name = N'c3'
AND Object_ID = Object_ID(N'table1'))
BEGIN
ALTER TABLE table1 DROP COLUMN C3
END
ELSE
SET STR = concat(STR,'C3 does not exist.')
END
SELECT STR
不清楚何时/何地执行此代码 但是,在Access中,以下代码将起作用:
On Error Resume Next
CurrentDb.Execute "ALTER TABLE Table1 DROP COLUMN C1"
CurrentDb.Execute "ALTER TABLE Table1 DROP COLUMN C2"
CurrentDb.Execute "ALTER TABLE Table1 DROP COLUMN C3"