再会,
我的SQL Server 数据库表中有一个时间(日期时间)字段,我必须将VS 2010 程序上的日期时间类型的记录提交到我的数据库。当我这样做时,我收到以下错误:
{“列插入或更新与先前的 CREATE RULE 语句施加的规则冲突。该语句已终止。冲突发生在数据库 'PTBODW'、表 ' dbo。MatchGPStoTripSchedule '、列 ' tTripScheduledStartTime '。\r\n语句已被终止。"} 谁能帮帮我。
提前致谢。
再会,
我的SQL Server 数据库表中有一个时间(日期时间)字段,我必须将VS 2010 程序上的日期时间类型的记录提交到我的数据库。当我这样做时,我收到以下错误:
{“列插入或更新与先前的 CREATE RULE 语句施加的规则冲突。该语句已终止。冲突发生在数据库 'PTBODW'、表 ' dbo。MatchGPStoTripSchedule '、列 ' tTripScheduledStartTime '。\r\n语句已被终止。"} 谁能帮帮我。
提前致谢。
看起来该列正在使用旧sp_bindrule
功能。您可以使用以下命令列出数据库中的规则:
select o.name as TableName
, c.name as ColumnName
, r.name as RuleName
from sys.objects o
join sys.columns c
on c.object_id = o.object_id
join sys.objects r
on r.object_id = c.rule_object_id
where o.is_ms_shipped <> 1
and rule_object_id <> 0
您可以使用以下命令查看规则的定义sp_helptext
:
exec sp_helptext 'RuleName'
规则可以从一列中解除绑定sp_unbindrule
(每列只能有一个规则,因此sp_unbindrule
不需要知道规则的名称):
exec sp_unbindrule 'MatchGPStoTripSchedule.tTripScheduledStartTime'
听起来它可能是一个超出范围的变量。我会在 SQL 管理工作室中启动 SQL 分析器并找到导致错误的确切 SQL。如果它是批量插入,我将连续获得插入的大小,直到您隔离导致问题的(第一个?)行。