我有一个Excel源进入一个OLE DB目的地。 我将数据插入到具有INSTEAD OF触发器来处理所有插入的视图。 当我尝试执行包我收到此错误:
“失败插入只读列的ColumnName”
我能做些什么来让SSIS知道这个观点是安全的插入,因为有一个INSTEAD OF触发器将处理插入呢?
编辑(附加信息):
一些更多的附加信息。 我有被插入一个规范化的数据库平面文件。 我最初的问题是我怎么走平坦的文件和数据插入到多个表中同时跟踪所有的主/外键关系。 我的解决方案是创建模仿平面文件的结构的图,然后在该视图创建INSTEAD OF触发器。 在INSTEAD OF触发器我我会处理好保持所有表之间的关系的逻辑
我的观点看起来是这样的。
CREATE VIEW ImportView
AS
SELECT
CONVERT(varchar(100, NULL) AS CustomerName,
CONVERT(varchar(100), NULL) AS Address1,
CONVERT(varchar(100), NULL) AS Address2,
CONVERT(varchar(100), NULL) AS City,
CONVERT(char(2), NULL) AS State,
CONVERT(varchar(250), NULL) AS ItemOrdered,
CONVERT(int, NULL) AS QuantityOrdered
...
我永远不会需要从该视图中选择,我只用它从我收到此平面文件数据插入到它。 我需要好歹告诉SQL Server的这些字段是不是真的只读,因为有一个INSTEAD这种观点OF触发器。