SQLServer快速生成多字段sql语句
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SQLServer快速生成多字段sql语句,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1973字,纯文字阅读大概需要3分钟。
内容图文
![SQLServer快速生成多字段sql语句](/upload/InfoBanner/zyjiaocheng/493/7287c04314524c168363ee199116967e.jpg)
也许会碰到这样的问题:
有一张表有几十个或者上百个字段,备份后删除了一部分数据,过后发现问题需要恢复其中一部分数据,但有几个字段不需要恢复(比如100个字段,只需恢复97个)
初学阶段:
对于一个初学者可能是个噩梦:"oh, my god! 难道要手打97个字段???",一边从网上找案例,一边苦思冥想,折腾十几分钟,最终还是手打...
入门阶段:
对于了解数据库但不是很擅长编写sql语句(涉及系统表)的技术人员:"嗯...这个可以从建表语句或者用sp_help table_name拿到所有字段,只需要将字段复制出来整理一下...",于是复制粘贴,改字段加符号,处理了几分钟
进阶阶段:
对于熟悉数据及编写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=‘‘
--备份表
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)
类似的问题再次出现
初学者:"##$#@!@#!@#%$#%..."
入门者:"唉..."
进阶者笑了笑,从容不迫的替换参数,十几秒后一切搞定...
于是开始了打怪升级道路:初学者->入门者->进阶者->......
本文出自 “aimax” 博客,请务必保留此出处http://aimax.blog.51cto.com/11610508/1976760
SQLServer快速生成多字段sql语句
标签:sqlserver datepart() 快速拼接多字段sql语句
本文系统来源:http://aimax.blog.51cto.com/11610508/1976760
内容总结
以上是互联网集市为您收集整理的SQLServer快速生成多字段sql语句全部内容,希望文章能够帮你解决SQLServer快速生成多字段sql语句所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。