加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLServer快速生成多字段sql语句

发布时间:2022-12-15 14:03:21 所属栏目:MsSql教程 来源:网络
导读: 也许会碰到这样的问题:
有一张表有几十个或者上百个字段,备份后删除了一部分数据,过后发现问题需要恢复其中一部分数据,但有几个字段不需要恢复(比如100个字段,只需恢复97个)
初学阶段

也许会碰到这样的问题:

有一张表有几十个或者上百个字段,备份后删除了一部分数据,过后发现问题需要恢复其中一部分数据,但有几个字段不需要恢复(比如100个字段,只需恢复97个)

初学阶段:

对于一个初学者可能是个噩梦:"oh, my god! 难道要手打97个字段???",一边从网上找案例,一边苦思冥想,折腾十几分钟,最终还是手打...

入门阶段:

对于了解数据库但不是很擅长编写sql语句(涉及系统表)的技术人员:"嗯...这个可以从建表语句或者用sp_help table_name拿到所有字段,只需要将字段复制出来整理一下...",于是复制粘贴mssql 语句快速参考,改字段加符号,处理了几分钟

进阶阶段:

对于熟悉数据及编写sql语句的技术人员:"系统表里面存放表的字段信息,在查询字段时可以把不需要的字段剔除,拼接出可直接用于执行的语句...",几分钟后,敲出代码:

declare @into_table_name varchar(50)

declare @select_table_name varchar(50)

declare @except_columns varchar(100)

declare @where_condition varchar(500)

--原表

set @into_table_name=''

mssql 语句快速参考_快速学习sql语句 pdf_论文范文参考 加qq论文发表论文范文参考

--备份表

set @select_table_name=''

--排除的字段

set @except_columns=''

--where条件

set @where_condition=' where 1=2'

declare @insert_str varchar(max)

declare @column_str varchar(max)

--拼接字段

set @column_str=(

select b.name+','

from sysobjects a,syscolumns b

where a.id=b.id

and a.name=@table_name

and b.name not in(@except_columns)

for xml path(''))

--删除末尾逗号

select @column_str=substring(@column_str,1,len(@column_str)-1)

--拼接sql语句

set @insert_str='insert into '+@into_table_name+'('+@column_str+') select '+@column_str+' from '+@select_table_name+@where_condition

select @insert_str

检查无误后:exec(@insert_str)

类似的问题再次出现

初学者:"##$#@!@#!@#%$#%..."

入门者:"唉..."

进阶者笑了笑,从容不迫的替换参数,十几秒后一切搞定...

于是开始了打怪升级道路:初学者->入门者->进阶者->......

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!