INSERT 语句与 CHECK 约束“ck_str_member_no
”冲突。冲突发生在数据库“C:\DOCUMENTS AND SETTINGS\KARTHIKEYAN\DESKTOP\KOK\DB\INFT3009_ASS1_C3104855.MDF”、表“dbo.Members”、列“str_member_no
”中。
该声明已终止。
我在 Visual Studio 2008 Express 中使用 .MDF 文件。怎么解决?
我的插入过程:
<小时/>ALTER PROCEDURE [dbo].[AddNewAGCMember]
-- Add the parameters for the stored procedure here
@str_member_no varchar(6) = '',
@str_member_name varchar(50) = '',
@str_member_password varchar(10) = '',
@str_addr_apartment_no varchar(10) = NULL,
@str_addr_building_name varchar(50) = NULL,
@str_addr_street_name varchar(50) = NULL,
@int_postal_code int = NULL,
@str_country_name varchar(50) = NULL,
@int_contact_no int = NULL,
@str_email_addr varchar(100) = '',
@date_registration date = ''
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
INSERT INTO Members
(str_member_no,
str_member_name,
str_member_password,
str_addr_apartment_no,
str_addr_building_name,
str_addr_street_name,
int_postal_code,
str_country_name,
int_contact_no,
str_email_addr,
date_registration)
VALUES
(@str_member_no,
@str_member_name,
@str_member_password,
@str_addr_apartment_no,
@str_addr_building_name,
@str_addr_street_name,
@int_postal_code,
@str_country_name,
@int_contact_no,
@str_email_addr,
@date_registration);
END
<小时/>
表结构:
str_member_no
,varchar(6),未选中str_member_name
,varchar(50),未选中str_member_password
,varchar(10),未选中str_addr_apartment_no
,varchar(10),已选中str_addr_building_name
,varchar(50),已选中str_addr_street_name
,varchar(50),已选中int_postal_code
,int,已检查str_country_name
,varchar(50),已选中int_contact_no
,int,已选中str_email_addr
,varchar(100),未选中date_registration
,日期,未选中Unchecked
最佳答案
显然,您的插入违反了检查约束。这是数据库中的一个约束,它执行特定的检查 - 数值是否在特定范围内、字符串的长度最多为 n 个字符,等等。
要了解检查约束是什么,请尝试以下操作:
SELECT
name, definition
FROM
sys.check_constraints
WHERE
name = 'ck_str_member_no'
这将为您提供在“定义”列中检查的表达式。
根据该表达式,您应该能够确定插入内容被拒绝的原因。修复问题并重新插入。
如果您确实无法修复数据,并且不需要/不希望检查约束到位,则可以删除它:
ALTER TABLE dbo.Members
DROP CONSTRAINT ck_str_member_no
马克
关于SQL服务器错误: The INSERT statement conflicted with the CHECK constraint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1496048/