我有一个SSIS数据流任务正在采取查找匹配的记录,并将它们提供给一个OLE DB命令组件。当我运行它,我得到一个错误,指出:为什么OLE DB命令试图更新模式?
Error: 0xC0202009 at Data Flow Task, OLE DB Command [28]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E14.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E14 Description: "Property cannot be added. Property 'MS_Description' already exists for 'dbo.d_date.d_date_key'.".
我的SQL是:
UPDATE d_date
SET company_year_period = ?,
company_quarter = ?,
company_year_quarter = ?,
company_quarter_year = ?,
company_first_day_of_week = ?,
company_last_day_of_week = ?,
is_company_holiday = ?,
company_special_event = ?,
is_us_holiday = ?,
us_special_event = ?,
is_canadian_holiday = ?,
canadian_special_event = ?,
is_mexican_holiday = ?,
mexican_special_event = ?
WHERE d_company_key = ?
AND calendar_date = ?
为什么这个组件/简单的更新与扩展属性搞乱?!?
要完成这里是我创建表时使用的代码。
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Primary key for the d_date table. While it is a surrogate key it never the less has the form yyyymmdd.' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'd_date', @level2type=N'COLUMN',@level2name=N'd_date_key'
CREATE TRIGGER d_date_update ON d_date
AFTER UPDATE
AS
UPDATE d_date
SET last_update = GETDATE()
WHERE d_date_key IN (SELECT DISTINCT d_date_key FROM Inserted)
;
我有一个表,d_date,以及每个柱MS_Description的扩展属性。该表中填充了2558个日期记录。我有第二个没有扩展属性的工作表。它也填充了一些稍微不同的记录。下面的更新失败:
UPDATE dd
SET dd.company_year_period = wdd.company_year_period,
dd.company_quarter = wdd.company_quarter,
dd.company_year_quarter = wdd.company_year_quarter,
dd.company_quarter_year = wdd.company_quarter_year,
dd.company_first_day_of_week = wdd.company_first_day_of_week,
dd.company_last_day_of_week = wdd.company_last_day_of_week,
dd.is_company_holiday = wdd.is_company_holiday,
dd.company_special_event = wdd.company_special_event,
dd.is_us_holiday = wdd.is_us_holiday,
dd.us_special_event = wdd.us_special_event,
dd.is_canadian_holiday = wdd.is_canadian_holiday,
dd.canadian_special_event = wdd.canadian_special_event,
dd.is_mexican_holiday = wdd.is_mexican_holiday,
dd.mexican_special_event = wdd.mexican_special_event
FROM d_date AS dd
LEFT JOIN working_d_date AS wdd ON wdd.d_company_key = dd.d_company_key
AND wdd.calendar_date = dd.calendar_date
(2558 row(s) affected)
Msg 15233, Level 16, State 1, Procedure sp_addextendedproperty, Line 37
Property cannot be added. Property 'MS_Description' already exists for 'dbo.d_date.d_date_key'.
最后的评论: 我正在这一切对我已经设置了使用试用许可证,我的工作站上SS2014企业。我不是DBA,所以我没有正确设置一些东西的可能性很大。
我把所有的东西都搬到了我们的SS2008 R2服务器上,我没有看到任何问题。这可能是2014年和2008年之间的问题,但更可能是2014年安装中的某种设置问题。我会再次重温,当我们正式安装2014
这很奇怪,特别是在提供的代码中不存在'd_date_key'。有没有触发器附在桌子上? – billinkc
我正在更新last_update列。 –
你会发布触发器定义吗?单击编辑按钮并将其修补到问题 – billinkc