sqlserver 中ETL常见技巧整理

本文深入探讨了SQL中时间戳字段的性质,解释了其作为数据库自动生成的二进制记录的作用,以及如何用于增量更新和数据变更检测。此外,还介绍了@@Rowcount和@@identity的用途,前者用于追踪CRUD操作影响的行数,后者则用于获取最新插入的标识值,常用于日志ID。同时,文章讲解了WITH(NOLOCK)提示如何实现读未提交的查询,以及如何使用EXECMASTER..XP_CMDSHELL生成Excel文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间戳并不是一个date类型的字段,而是一个二进制的,数据库自动生成的字段,记录了在数据库里的时间。可以用来作为增量更新的条件,同时也可以发现查询完数据后再查一次,数据在这段时间有没有发生改变

https://www.cnblogs.com/tianguook/p/3830234.html

@@Rowcount 是指做完crud的表,影响的行数,

set @ValidRecordCount = @@ROWCOUNT 然后使用@ValidRecordCount 做for循环

https://www.cnblogs.com/Nina-piaoye/p/5979414.html

@@identity的作用是返回最后插入的标识值,所以有很多朋友使用它来获取插入数据后的标识符。可以用来作为日志的id号

https://blog.youkuaiyun.com/kissqi/article/details/2692368

with (nolock) 不被实物限制的读取,即读未提交

https://www.cnblogs.com/kerrycode/p/3946268.html

EXEC MASTER..XP_CMDSHELL @sql 可生成excel,@sql=SET @SQL='bcp "SELECT '' 省'',''市'',''区县'' FROM  A ORDER BY 1,2,3 " queryout "'+@FilePath+'\03_文件名('+CONVERT(NVARCHAR(8),@BeginINT/100)+'月).csv" -w -q -S "电脑用户名" -T'
    

其他:一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值