SSIS有条件进口
问题描述:
我是SSIS的新手。我有一个SSIS包,它从一个不同的SQL Server中导入一个表来挖掘。我使用导入向导创建了该包,但我知道如何使用VisualStudio打开和编辑。基本包首先删除原始表,创建新表然后导入数据。我每天都这样做。SSIS有条件进口
我的问题是有时其他数据库不可用。直到桌子掉落之后,我才知道有什么问题。我需要知道在删除当前副本之前是否有简单的(足够我)的方法来检查其他表的可用性。这样,如果新数据不可用,我会保留最新的数据。
我想我可以导入临时表,然后检查它的行数,如果0停在那里。或者在丢弃之前先检查其他服务器,但我不知道如何去做。感谢一些指针。
编辑:需要帮助搞清楚如何在SSIS中做到这一点,以及如何做到这一点。
答
这很容易完成。你必须检查是否有其他数据库表之前落下的是一个简单的命令和这里说的是:
从here
永久表
IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL DROP TABLE dbo.Scores;
临时表
拉到查询IF OBJECT_ID('tempdb.dbo.#T', 'U') IS NOT NULL DROP TABLE #T;
这将允许您删除,如果其他存在。
可能重复[检查数据库是否存在,当前登录可以访问](https://*.com/questions/19553515/check-if-database-exists-and-current-login-can-access) – Tanner
read这个:https://docs.microsoft.com/en-us/sql/t-sql/functions/has-dbaccess-transact-sql你可以在ssis中添加它,把它返回的值,然后继续,如果它在线否则安全地失败。 – Tanner
谢谢Tanner。关于这一部分的细节我很模糊:“把它返回的价值,然后继续,如果它在线,否则安全地失败”。我从凯尔的回复中收集到了它的失败(返回1?),那么包裹就会在那里停止。 – shorton