Anu*_*uya 5 sql t-sql sql-server
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
Run Code Online (Sandbox Code Playgroud)
表结构:
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
Run Code Online (Sandbox Code Playgroud)mar*_*c_s 14
显然,您的插入违反了检查约束.这是数据库中执行特定检查的约束 - 数值在特定范围内,字符串最多为n个字符,或者其他任何内容.
要找出检查约束的内容,请尝试以下操作:
SELECT
name, definition
FROM
sys.check_constraints
WHERE
name = 'ck_str_member_no'
Run Code Online (Sandbox Code Playgroud)
这将为您提供在"定义"列中检查的表达式.
从该表达式,您应该能够确定拒绝插入的原因.解决问题并再次插入.
如果您确实无法修复数据,并且您不需要/希望检查约束,则可以删除它:
ALTER TABLE dbo.Members
DROP CONSTRAINT ck_str_member_no
Run Code Online (Sandbox Code Playgroud)
渣
| 归档时间: |
|
| 查看次数: |
31377 次 |
| 最近记录: |