将MSSQL表数据转成SQL语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将MSSQL表数据转成SQL语句相关的知识,希望对你有一定的参考价值。
创建一个把表记录转换成SQL语句
CREATE PROC [dbo].[up_tb_tosql] @tbname varchar(200) = ‘‘,<span style="white-space:pre"> </span>--表名 @rownum varchar(10) =‘1000‘<span style="white-space:pre"> </span>--转换条数 as BEGIN --表名检查 IF @tbname = ‘‘ BEGIN return 0; END --条数验证 IF @rownum is null BEGIN SET @rownum =‘1000‘; END --定义变量 DECLARE @colinfo varchar(8000) DECLARE @sqlinfo varchar(8000) DECLARE @sqlcmd varchar(8000) DECLARE @sqlst varchar(800) DECLARE @sqlend varchar(800) SET @sqlcmd=‘‘; SET @sqlst=‘‘; SET @sqlend=‘‘; --生成列信息 SELECT @colinfo=replace(replace(CAST (( SELECT case when system_type_id in (61,58) then convert(varchar(20),name,120) else name end +‘,‘ from sys.columns WHERE object_name(object_id)[email protected] FOR XML PATH(‘‘), TYPE) AS NVARCHAR(MAX) ) ,‘</name>‘,‘‘),‘<name>‘,‘‘); SELECT @colinfo=Left(@colinfo,len(@colinfo)-1); --拼接列名 SELECT @sqlinfo=replace(replace(CAST (( SELECT case when system_type_id in (58,61) then ‘+convert(varchar(20),isnull(‘+name+‘,‘‘‘‘),120)+‘‘‘‘‘‘,‘‘‘‘‘‘‘ else ‘+replace(CAST(isnull(‘+name+‘,‘‘‘‘) as varchar(2000)),‘‘‘‘‘‘‘‘,‘‘‘‘)+‘‘‘‘‘‘,‘‘‘‘‘‘‘ end from sys.columns WHERE object_name(object_id)[email protected] FOR XML PATH(‘‘), TYPE) AS NVARCHAR(MAX) ) ,‘</name>‘,‘‘),‘<name>‘,‘‘); SELECT @sqlinfo=Left(@sqlinfo,len(@sqlinfo)-8); --查询是否自增 IF exists (SELECT * FROM sys.columns WHERE object_name(object_id)[email protected] and is_identity=1) BEGIN SET @sqlst=‘SELECT ‘‘SET identity_insert [‘[email protected]+‘] ON ‘‘ UNION ALL ‘; SET @sqlend=‘UNION ALL SELECT ‘‘ SET identity_insert [‘[email protected]+‘] OFF ‘‘‘; END --拼写整个SQL SELECT @[email protected]+‘ SELECT TOP ‘[email protected]+‘ ‘‘INSERT INTO [‘[email protected]+‘](‘[email protected]+‘) SELECT ‘‘‘‘‘‘‘[email protected]+ ‘+‘‘‘‘‘‘;‘‘ FROM ‘[email protected]+‘ ‘[email protected]; --SELECT @sqlcmd,@sqlst,@colinfo,@sqlinfo,@tbname,@sqlend,@rownum; --执行SQL exec (@sqlcmd); --print @sqlcmd; end
调用方式 up_tb_tosql(‘t_tbnam‘,‘10000‘);
本文出自 “枯叶” 博客,请务必保留此出处http://mydbs.blog.51cto.com/513727/1745278
以上是关于将MSSQL表数据转成SQL语句的主要内容,如果未能解决你的问题,请参考以下文章
mssql 的一张表中有100000条数据,如何用mssql语言将这100000条数据平均分到10张表中
我用的是 MSSQL 2005 请问下 用SQL语句 数据库查询某个表是不是存在不存在则创建这个表,该怎么写。