sql - ALTER TABLE 语句与 CHECK 约束冲突

标签 sql sql-server database foreign-keys

我想在两个数据库之间创建一个外键。碰巧表有数据,所以当我建立外部关系时,就会出现错误。

我发现当您的表有数据时会发生错误。那么如何不验证现有数据呢?

ALTER TABLE [contrato_sigob].[relacion_institucion_categoria]
ADD CONSTRAINT CHECK_CATEGORIA
CHECK([dbo].[func_CHECK_CATEGORIA](id_categoria)=1);

错误说:

The ALTER TABLE statement conflicted with the CHECK constraint "CHECK_CATEGORIA". The conflict occurred in database "SIGOB_Contraloria", table "contrato_sigob.relacion_institucion_categoria", column 'id_categoria'.

最佳答案

So how to not verify existing data?

您可以通过添加 WITH NOCHECK 创建一个不会检查现有记录的约束:

ALTER TABLE TABLE_NAME WITH NOCHECK 
ADD CONSTRAINT ...

关于sql - ALTER TABLE 语句与 CHECK 约束冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46076472/

相关文章:

sql - 按 SQL Server 中总数的百分比分组

sql - 将字符串转换为 BIGQUERY 中的日期 当日期采用以下格式时 : M/D/YYYY

SQL 连续出现一个范围内的条目

javascript - 查询SQL时,传递到查询的时间比我设置的时间少了2小时。为什么?

mysqldump导致数据库连接错误?

java - 比较数据库中的字符串与 Android Studio 中的字符串

java - Oracle 19c 与 jdk7 的兼容性

sql - 为什么 TOP 或 SET ROWCOUNT 使我的查询如此缓慢?

php - sqlsrv 通过网络非常慢

sql-server - 如何使用变量的值作为表名创建永久表