此触发器的作用就是把当前上传的EXCEL以全局变量的形式传递给DTS包,然后通过DTS包执行导入数据库中,返回执行结果。
CREATE TRIGGER [SysCRMStockInfoFromEXcel] ON [dbo].[T]
after INSERT
AS
SET ANSI_NULLS OFF
SET NOCOUNT ON
declare @s Varchar(2000)
set @s='dtsrun /S ii2/ms2000 /U sa /P 123456 /N ExcelToCRMStock /A "ExcelFild":"8"="d:/my/'+(select sf0 from inserted)+'" '
--/a "全局变量名":"变量类型的ID(参照联机帮助)"="实际值"
--print(@s)
create Table #Tmp(
sname varchar(255) null,
)
insert into #Tmp EXEC master..xp_cmdshell @s
-------------------非常非常的重要,如果不把输出的信息转到临时表,他会显示出来,这种会造成插入不成功,但EXCEL导入是成功的。
另外一点,把导入信息也可以整合起来,放在导入信息上,以备查找。