bcp dbo.MyTable out "C:\temp\AdventureWorks.dbo.MyTable.txt" -S ERECH\DEV2019UTF8 -d AdventureWorks -T -c -a 32768
可以通过执行进程任务从SSIS调用bcp。 如何处理表名的更改?可能是这样的查询
-- Generate a list of tables created in the past 16 days
-- Make the table name safe for consumption by BCP via quotename
SELECT
CONCAT(QUOTENAME(S.name), '.', QUOTENAME(T.name)) AS QualifiedTable, T.create_date
FROM
sys.schemas AS S
INNER JOIN
sys.tables AS T
ON T.schema_id = S.schema_id
WHERE
T.create_date > DATEADD(DAY, -16, GETDATE())
ORDER BY T.create_date DESC;
1条答案
按热度按时间jtjikinw1#
“新表的架构不相同”
那么SSIS数据流就不是适合你的技术,因为数据流与源和目标元数据是紧密绑定的,改变模式是行不通的。
“我是否需要转移到不同的技术堆栈”
SSIS作为一个执行框架仍然可以提供一些好处,它具有本机日志记录、配置和对许多本机组件的访问,以及.NET运行时,可以执行您可能需要执行的任何其他操作。
* 我 * 会如何解决这个问题?
假设您需要将任意表的内容导出到平面文件中,我将使用我的信任朋友BCP
作为一个示例调用,下面将使用集成安全性将名为
MyTable
的表导出到制表符分隔的文件可以通过执行进程任务从SSIS调用bcp。
如何处理表名的更改?可能是这样的查询
1假设总是存在公共核心元素,并且只需要导出这些实体,就可以使它工作。
例如,给定这些表定义,您可以提取前3列,在源查询中进行一些类型转换,并始终填充输出文件
这将是大量的动态查询生成和希望和猜测,但它 * 可以 * 做,但可能不应该。