代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
MSSQL
】
快速获取表中数据的Insert语句,便于快速复制
作者:
/ 发布于
2016/1/25
/
697
EXEC usp_Tool_GetSQL @tablename='****',@condition=' WHERE ****=''****''' EXEC usp_Tool_GetSQL @tablename='*****'
CREATE proc [dbo].[usp_Tool_GetSQL] @tablename sysname, @aimtablename sysname = '', @condition nvarchar(4000) = '', @showSql char(1) = 'N' , @columnnames nvarchar(4000) ='*' AS begin declare @sqlName varchar(max) declare @sqlValues varchar(max) declare @strCondition varchar(1000) SET NOCOUNT ON select @sqlName =' (' select @sqlValues = 'VALUES (''+' if(@aimtablename = '') select @aimtablename = @tablename select @sqlValues = @sqlValues + ColValue + ' + '','' + ' ,@sqlName = @sqlName + '[' + ColName + '],' from (select case when xtype in (48,52,56,59,60,62,104,106,108,122,127) --数字类型 then 'case when ['+ name +'] is null then ''NULL'' else ' + 'cast(['+ name + '] as varchar)'+' end' when xtype in (58,61) --smalldatetime datetime --then 'case when ['+ name +'] is null then ''NULL'' else '+''''''''' + ' + 'cast(['+ name +'] as varchar)'+ '+'''''''''+' end' then 'case when ['+ name +'] is null then ''NULL'' else '+''''''''' + ' + 'convert(nvarchar(24),['+ name +'],121)'+ '+'''''''''+' end' -- when xtype in (167,175)--(var)char -- then 'case when '+ name +' is null then ''NULL'' else '+''''''''' + ' + 'replace('+ name+','''''''','''''''''''')' + '+''''''''' + ' end' when xtype in (167,175)--(var)char then 'case when ['+ name +'] is null then ''NULL'' else '+'''N'''''' + ' + 'replace(['+ name+'],'''''''','''''''''''')' + '+''''''''' + ' end' when xtype in (231,239)--(nvar)char then 'case when ['+ name +'] is null then ''NULL'' else '+'''N'''''' + ' + 'replace(['+ name+'],'''''''','''''''''''')' + '+''''''''' + ' end' else '''NULL''' end as ColValue,name as ColName from syscolumns where id = object_id(@tablename) AND (@columnnames='*' or CHARINDEX(','+name+',',','+@columnnames+',')>0) --and autoval is null --当该栏位为自增型int时,会出现autoval不为null的情况。 ) T --不同的DB计算出来的长度可能不一样,所以最后一个是逗号的话,多减去一个字符的长度 select @sqlValues = left(@sqlValues,len(@sqlValues)-4) if left(reverse(@sqlValues),1) = ',' select @sqlValues = left(@sqlValues,len(@sqlValues)-1) if(@showSql='Y') BEGIN print '--SQL1 - GenColoums:' print '--select ''INSERT INTO ['+ @aimtablename + ']' + left(@sqlName,len(@sqlName)-1)+') ' + @sqlValues + ')'' AS INSERTSQL from '+@tablename + space(1) + @condition print '--SQL2 - Not GenColoums:' print '--select ''INSERT INTO ['+ @aimtablename + '] ' + @sqlValues + ')'' AS INSERTSQL from '+@tablename + space(1) + @condition END select @sqlName = left(@sqlName,len(@sqlName)-1) select @strCondition=replace(@condition,'''','''''') /* --from table to table exec ('SELECT ''--['+@tablename+']-->['+@aimtablename+']'' as [ ]') --delete existed records exec('select ''DELETE FROM'+ @tablename + ' ' + @strCondition+''' as [--Delete SQL]') */ --get insert sql exec('SELECT ''--['+@tablename+']-->['+@aimtablename+']'' as [ ] UNION ' + 'SELECT ''DELETE FROM ['+ @tablename + '] ' + @strCondition+''' as [ ] UNION ' + 'SELECT ''INSERT INTO ['+ @aimtablename + ']' + @sqlName +') '+ @sqlValues + ')'' as [ ] from '+ @tablename + ' ' + @condition) SET NOCOUNT OFF end
试试其它关键字
同语言下
.
SQL查询 多列合并成一行用逗号隔开
.
查看存储过程修改时间,最近执行时间
.
设置手动批量删除数据库相关进程
.
获取某个表中特定字段的所有字符串形式
.
SQL 如何去除重复的字符串
.
怎么去掉一个字段中的重复数据
.
String 去除空格 回车 换行 水平制表符
.
SQL查询和替换含有回车,空格,TAB
.
SQL SERVER 查询每日新增用户数量、次留数量
.
判断两个字符串是否存在相同的内容
可能有用的
.
SQL查询 多列合并成一行用逗号隔开
.
查看存储过程修改时间,最近执行时间
.
设置手动批量删除数据库相关进程
.
获取某个表中特定字段的所有字符串形式
.
SQL 如何去除重复的字符串
.
怎么去掉一个字段中的重复数据
.
String 去除空格 回车 换行 水平制表符
.
SQL查询和替换含有回车,空格,TAB
.
SQL SERVER 查询每日新增用户数量、次留数量
.
判断两个字符串是否存在相同的内容
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3