删除约束时出现语法错误或访问冲突

时间:2019-02-21 05:59:14

标签: sql-server ms-access

我有一个到SQL Server数据库的ADODB连接。我试图删除由SQL Server迁移助手创建的表中的一个自动生成的约束。

要删除约束的代码如下:

conn.Execute "ALTER TABLE [dbo].[PROD] DROP CONSTRAINT [PROD$[C:\Users\Dave\Desktop\PROD.accdb]].{K2K214-423232-1231-CSD9-ASD}]"

我收到的错误消息是

  

语法错误或访问冲突

如果我将约束名称更改为随机

conn.Execute "ALTER TABLE [dbo].[PROD] DROP CONSTRAINT random"

我收到运行时错误:

  

“随机”不是一个约束条件

错误似乎是由该名称引起的,但我不知道为什么

[PROD$[C:\Users\Dave\Desktop\PROD.accdb]].{K2K214-423232-1231-CSD9-ASD}]

我也知道T-SQL没错,因为如果我在SQL Server Management Studio中运行查询:

ALTER TABLE [dbo].[PROD] DROP CONSTRAINT [PROD$[C:\Users\Dave\Desktop\PROD.accdb]].{K2K214-423232-1231-CSD9-ASD}]

执行成功

1 个答案:

答案 0 :(得分:0)

我不知道为什么会这样,但是由于某种原因,重命名了约束并删除了它。如果有人有主意,请解释原因

conn.Execute "sp_rename '[PROD$[C:\Users\Dave\Desktop\PROD.accdb]].{K2K214-423232-1231-CSD9-ASD}]', 'FK_delete';

conn.Execute "ALTER TABLE [dbo].[PROD] DROP CONSTRAINT FK_delete"