想将Excel数据导入数据库,设计的包,一般是定时执行;而数据需要随时导入,所有前台程序要能触发执行。开始想用sp_job_start,但受库和其它job过程影响。后来有dtexec解决了
/*执行SSIS包,将Excel导入本地SQL数据库
pro_xls_db_job 'server2','xls_db'
*/
ALTER PROCEDURE pro_xls_db_job
@servername varchar(30), --服务器
@filename varchar(30) --dtsx路径
AS
exec('exec master..xp_cmdshell dtexec /sq '+ @filename +' /ser '+ @servername)
GO
过程中遇到问题:
说明: 无法解密受保护的 XML 节点“DTS:Password”,错误为 0x8009000B“该项不适于在指定状态下使用。”。可能您无权访问此信息。当发生加密错误时会出现此错误。请确保提供正确的密钥。
已获得 OLE DB 记录。源:“Microsoft OLE DB Provider for SQL Server” Hresult: 0x80040E4D 说明:“用户 'sa' 登录失败。”
后来得知是导入包保护级别选项中需要选择依靠服务器存储和角色进行访问控制,但其它访问方式为什么不行呢?