SQLSERVER进阶常用函数

文章讨论了在数据库管理中遇到的主键自增策略限制问题,提出使用Row_Number()函数结合日期排序生成新的主键来解决。此外,还介绍了如何进行大规模数据填充和跨库数据迁移,以满足产品演示或数据同步的需求。

需求背景

在维护老项目的过程中,常发现一些用数据库的主键自增策略给主键,导致产生的一些问题,比如再测试接口时想手动添加一条数据到表里,会发现主键自增一直阻止,不让你主动的去添加记录;

解决方案

SELECT Row_Number( ) OVER (ORDER BY getdate() ) id,*  INTO 目标表 FROM 源表

将原来表中的主键字段删除,然后将Row_Number( ) OVER (ORDER BY getdate() )赋值到目标表中作为主键,这样就可以显式的向表中插值;

例:SELECT Row_Number( ) OVER (ORDER BY getdate() ) id,* INTO user_1 FROM user

最后将user_1表名替换为user

需求背景

一个产品要给甲方做演示时,要给库里边造一些数据,一二百个字段,要大量数据才能展示出产品效果;或者字段名称不一致想从a库的表中把数据导到b库的表中;

解决方案

insert into
 目标表(column)
select column from 
源表

ps:目标表与源表可以跨库;例:河南.dbo.user->上海.dbo.user

目标表的column与源表的column对应执行sql;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怎样才能成码神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值