日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

如何為SQL Server表數據生成insert腳本

瀏覽:133日期:2023-11-04 12:34:47
使用SQL Server數據庫自帶的“生成SQL腳本”工具,可以生成創(chuàng)建表、視圖、存儲過程等的SQL腳本。那么,能否將表中的數據也生成為SQL腳本,在查詢分析器中執(zhí)行這些腳本后自動將數據導入到SQL Server中呢?答案是肯定的,示例如下:

CREATE PROCEDURE dbo.OutputData

@tablename sysname

AS

declare @column varchar(1000)

declare @columndata varchar(1000)

declare @sql varchar(4000)

declare @xtype tinyint

declare @name sysname

declare @objectId int

declare @objectname sysname

declare @ident int

set nocount on

set @objectId=object_id(@tablename)

if @objectId is null -- 判斷對象是否存在

begin

print @tablename + '對象不存在'

return

end

set @objectname=rtrim(object_name(@objectId))

if @objectname is null or charindex(@objectname,@tablename)=0

begin

print @tablename + '對象不在當前數據庫中'

return

end

if OBJECTPROPERTY(@objectId,'IsTable') < > 1 -- 判斷對象是否是表

begin

print @tablename + '對象不是表'

return

end

select @ident=status&0x80 from syscolumns where id=@objectid and status&0x80=0x80

if @ident is not null

print 'SET IDENTITY_INSERT '+ @TableName + ' ON'

--定義游標,循環(huán)取數據并生成Insert語句

declare syscolumns_cursor cursor for

select c.name,c.xtype from syscolumns c

where c.id=@objectid

order by c.colid

--打開游標

open syscolumns_cursor

set @column=''

set @columndata=''

fetch next from syscolumns_cursor into @name,@xtype

while @@fetch_status <> -1

begin

if @@fetch_status <> -2

begin

if @xtype not in(189,34,35,99,98) --timestamp不需處理,image,text,ntext,sql_variant 暫時不處理

begin

set @column=@column +

case when len(@column)=0 then ''

else ','

end + @name

set @columndata = @columndata +

case when len(@columndata)=0 then ''

else ','','','

end +

case when @xtype in(167,175) then '''''''''+'+@name+'+''''''''' --varchar,char

when @xtype in(231,239) then '''N''''''+'+@name+'+''''''''' --nvarchar,nchar

when @xtype=61 then '''''''''+convert(char(23),'+@name+',121)+''''''''' --datetime

when @xtype=58 then '''''''''+convert(char(16),'+@name+',120)+''''''''' --smalldatetime

when @xtype=36 then '''''''''+convert(char(36),'+@name+')+''''''''' --uniqueidentifier

else @name

end

end

end

fetch next from syscolumns_cursor into @name,@xtype

end

close syscolumns_cursor

deallocate syscolumns_cursor

set @sql='set nocount on select ''insert '+@tablename+'('+@column+') values(''as ''--'','+@columndata+','')'' from '+@tablename

print '--'+@sql

exec(@sql)

if @ident is not null

print 'SET IDENTITY_INSERT '+@TableName+' OFF'

調用時 exec OutputData 'myuser' 其中myUser中當前數據庫中存在的表。

另外方丈的:

drop proc proc_insert

go

create proc proc_insert (@tablename varchar(256))

as

begin

set nocount on

declare @sqlstr varchar(4000)

declare @sqlstr1 varchar(4000)

declare @sqlstr2 varchar(4000)

select @sqlstr='select ''insert '+@tablename

select @sqlstr1=''

select @sqlstr2=' ('

select @sqlstr1= ' values ( ''+'

select @sqlstr1=@sqlstr1+col+'+'',''+' ,@sqlstr2=@sqlstr2+name +',' from (select case

-- when a.xtype =173 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end'

when a.xtype =104 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(1),'+a.name +')'+' end'

when a.xtype =175 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'

when a.xtype =61 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+a.name +',121)'+ '+'''''''''+' end'

when a.xtype =106 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+a.name +')'+' end'

when a.xtype =62 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(23),'+a.name +',2)'+' end'

when a.xtype =56 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(11),'+a.name +')'+' end'

when a.xtype =60 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+a.name +')'+' end'

when a.xtype =239 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'

when a.xtype =108 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+a.name +')'+' end'

when a.xtype =231 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'

when a.xtype =59 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(23),'+a.name +',2)'+' end'

when a.xtype =58 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+a.name +',121)'+ '+'''''''''+' end'

when a.xtype =52 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(12),'+a.name +')'+' end'

when a.xtype =122 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+a.name +')'+' end'

when a.xtype =48 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar(6),'+a.name +')'+' end'

-- when a.xtype =165 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end'

when a.xtype =167 then 'case when '+a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+a.name+','''''''','''''''''''')' + '+'''''''''+' end'

else '''NULL'''

end as col,a.colid,a.name

from syscolumns a where a.id = object_id(@tablename) and a.xtype <>189 and a.xtype <>34 and a.xtype <>35 and a.xtype <>36

)t order by colid

select @sqlstr=@sqlstr+left(@sqlstr2,len(@sqlstr2)-1)+') '+left(@sqlstr1,len(@sqlstr1)-3)+')'' from '+@tablename

-- print @sqlstr

exec( @sqlstr)

set nocount off

end

go

drop proc proc_insert

go

create proc proc_insert (@tablename varchar(256))

as

begin

set nocount on

declare @sqlstr varchar(4000)

declare @sqlstr1 varchar(4000)

declare @sqlstr2 varchar(4000)

select @sqlstr=select insert +@tablename

select @sqlstr1=

select @sqlstr2= (

select @sqlstr1= values ( +

select @sqlstr1=@sqlstr1+col++,+ ,@sqlstr2=@sqlstr2+name +, from (select case

-- when a.xtype =173 then case when +a.name+ is null then null else +convert(varchar(+convert(varchar(4),a.length*2+2)+),+a.name +)+ end

when a.xtype =104 then case when +a.name+ is null then null else +convert(varchar(1),+a.name +)+ end

when a.xtype =175 then case when +a.name+ is null then null else +++replace(+a.name+,,) + ++ end

when a.xtype =61 then case when +a.name+ is null then null else +++convert(varchar(23),+a.name +,121)+ ++ end

when a.xtype =106 then case when +a.name+ is null then null else +convert(varchar(+convert(varchar(4),a.xprec+2)+),+a.name +)+ end

when a.xtype =62 then case when +a.name+ is null then null else +convert(varchar(23),+a.name +,2)+ end

when a.xtype =56 then case when +a.name+ is null then null else +convert(varchar(11),+a.name +)+ end

when a.xtype =60 then case when +a.name+ is null then null else +convert(varchar(22),+a.name +)+ end

when a.xtype =239 then case when +a.name+ is null then null else +++replace(+a.name+,,) + ++ end

when a.xtype =108 then case when +a.name+ is null then null else +convert(varchar(+convert(varchar(4),a.xprec+2)+),+a.name +)+ end

when a.xtype =231 then case when +a.name+ is null then null else +++replace(+a.name+,,) + ++ end

when a.xtype =59 then case when +a.name+ is null then null else +convert(varchar(23),+a.name +,2)+ end

when a.xtype =58 then case when +a.name+ is null then null else +++convert(varchar(23),+a.name +,121)+ ++ end

when a.xtype =52 then case when +a.name+ is null then null else +convert(varchar(12),+a.name +)+ end

when a.xtype =122 then case when +a.name+ is null then null else +convert(varchar(22),+a.name +)+ end

when a.xtype =48 then case when +a.name+ is null then null else +convert(varchar(6),+a.name +)+ end

-- when a.xtype =165 then case when +a.name+ is null then null else +convert(varchar(+convert(varchar(4),a.length*2+2)+),+a.name +)+ end

when a.xtype =167 then case when +a.name+ is null then null else +++replace(+a.name+,,) + ++ end

else null

end as col,a.colid,a.name

from syscolumns a where a.id = object_id(@tablename) and a.xtype <>189 and a.xtype <>34 and a.xtype <>35 and a.xtype <>36

)t order by colid

select @sqlstr=@sqlstr+left(@sqlstr2,len(@sqlstr2)-1)+) +left(@sqlstr1,len(@sqlstr1)-3)+) from +@tablename

-- print @sqlstr

exec( @sqlstr)

set nocount off

end

go

---------------------------------------------------------------------------------------

小干部的:

create proc spgeninsertsql

@tablename as varchar(100)

as

--declare @tablename varchar(100)

--set @tablename = orders

--set @tablename = eeducation

declare xcursor cursor for

select name,xusertype

from syscolumns

where (id = object_id(@tablename))

declare @f1 varchar(100)

declare @f2 integer

declare @sql varchar(8000)

set @sql =select insert into + @tablename + values(

open xcursor

fetch xcursor into @f1,@f2

while @@fetch_status = 0

begin

set @sql =@sql +

+ case when @f2 in (35,58,99,167,175,231,239,61) then + case when + @f1 + is null then else end + else + end

+ replace(isnull(cast( + @f1 + as varchar),null),,)

+ case when @f2 in (35,58,99,167,175,231,239,61) then + case when + @f1 + is null then else end + else + end

+ char(13) + ,

fetch next from xcursor into @f1,@f2

end

close xcursor

deallocate xcursor

set @sql = left(@sql,len(@sql) - 5) + + ) from + @tablename

print @sql

exec (@sql)

標簽: Sql Server 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
中文字幕一区二区三区四区久久| 日韩欧美网址| 在线精品小视频| 激情久久久久久久| 福利在线一区| 日韩高清成人| 久久中文字幕av一区二区不卡| 久久久久国产精品一区二区| 欧美日韩一二三四| 免播放器亚洲| 日韩 欧美一区二区三区| 日本一区中文字幕| 国产精品hd| 久久久一本精品| 亚洲一区成人| 欧美日韩亚洲一区| 中文字幕成在线观看| 黄色亚洲精品| 91成人福利| 欧美aa在线视频| 久久裸体视频| 日韩在线视频一区二区三区| 麻豆一区二区三| 国产一区日韩欧美| 久久狠狠久久| 香蕉精品久久| 国产日本精品| 亚洲成a人片| 亚洲专区视频| 麻豆国产91在线播放| 香蕉国产精品| 国产精品mm| 亚洲大全视频| 国产精品视频一区二区三区综合| 国产一区二区三区视频在线| 激情视频网站在线播放色| 日韩午夜免费| 麻豆中文一区二区| 欧美午夜不卡| 开心激情综合| 亚洲精品麻豆| 国产欧洲在线| 欧美日韩99| 日韩视频在线一区二区三区| 国产精品亚洲产品| 一区在线免费观看| 国产精品美女在线观看直播| 亚洲成人免费| 福利一区和二区| 亚洲精一区二区三区| 丁香六月综合| 国产日韩一区二区三区在线播放| 国产精品99免费看| 免费日韩一区二区三区| 日韩在线一区二区| 亚洲www免费| 国产精品一区二区av日韩在线| 在线亚洲成人| 蜜臀久久精品| 麻豆传媒一区二区三区| 蜜臀av亚洲一区中文字幕| av资源新版天堂在线| 欧美永久精品| 免费观看在线综合| 色在线视频观看| 国产极品模特精品一二| 亚洲精品亚洲人成在线观看| 在线日韩视频| 欧美成人a交片免费看| 欧美国产极品| 蜜桃av一区二区三区电影| www.com.cn成人| 国产日产一区| 婷婷综合社区| 日本免费久久| 青青青免费在线视频| 久久国产日韩欧美精品| 综合激情五月婷婷| 亚洲欧美不卡| 国产精品88久久久久久| 另类专区亚洲| 正在播放日韩精品| 精品精品久久| 精品视频网站| 黄色网一区二区| 国产精品va视频| 国产三级精品三级在线观看国产| 午夜亚洲福利| 日韩高清电影一区| 欧美日韩 国产精品| 亚洲色图国产| 亚洲最新av| 婷婷成人av| 青草综合视频| 久久黄色影视| 欧美国产专区| 国产精品黑丝在线播放| 97精品中文字幕| 亚洲国产福利| 欧洲在线一区| 国产一区亚洲| 美女黄网久久| 免费观看在线综合色| 蜜臀久久99精品久久久画质超高清 | 午夜日韩av| 午夜日韩福利| 久久午夜影视| 亚洲日本三级| 青青草国产成人99久久| 国产日韩高清一区二区三区在线 | 久久精品人人| 国产精品二区不卡| 久久蜜桃资源一区二区老牛| 欧美三级精品| 女人天堂亚洲aⅴ在线观看| 久久久影院免费| 精品日韩毛片| 中文字幕av一区二区三区人| 国产欧美一区二区三区米奇| 国产激情一区| 三上悠亚国产精品一区二区三区| 欧美~级网站不卡| 亚洲婷婷丁香| 蜜桃精品视频| 欧美日中文字幕| 亚洲精品日本| 久久久久亚洲精品中文字幕| 日韩网站中文字幕| 亚洲激情精品| 久久国产精品久久w女人spa| 日本强好片久久久久久aaa| 岛国精品一区| 夜夜嗨av一区二区三区网站四季av| 日韩一二三区在线观看| 国产aa精品| 亚洲欧美日韩国产| 美女尤物国产一区| 激情欧美国产欧美| 91麻豆精品激情在线观看最新 | 国产美女视频一区二区| 国产亚洲精品美女久久| 日韩欧美网址| 日韩高清二区| 久久久水蜜桃av免费网站| 亚洲精品国产精品粉嫩| 四季av一区二区凹凸精品| 亚洲黄页一区| 欧美国产免费| 国内精品99| 日本国产亚洲| 日韩欧美一区二区三区在线观看| 免费一级片91| 国产粉嫩在线观看| 日本中文字幕视频一区| 欧美精品资源| 日韩在线a电影| 偷拍精品精品一区二区三区| 久久午夜视频| 日韩中文首页| 久久激情五月婷婷| 婷婷综合网站| 国产成人精品亚洲线观看| 亚洲自拍另类| 国产专区精品| 欧美综合社区国产| 亚洲欧美不卡| 丝袜av一区| 国模精品一区| 日韩精品中文字幕吗一区二区| 蜜桃视频在线网站| 石原莉奈一区二区三区在线观看| 色婷婷综合网| 国产精品传媒麻豆hd| 免费观看日韩电影| 999久久久免费精品国产| 国产麻豆精品久久| 亚洲三级网站| 另类中文字幕国产精品| 国产乱码精品一区二区三区四区 | 久久久精品网| 美女视频黄 久久| 四虎国产精品免费久久| 国产视频久久| 美女性感视频久久| 亚洲资源网站| 日韩午夜电影| 婷婷成人基地| 日韩欧美一区二区三区免费看| 日韩av成人高清| 亚洲免费中文| 尤物在线精品| 国产中文一区| 另类中文字幕国产精品| 精品高清久久| 另类欧美日韩国产在线| 日韩动漫一区| 亚洲人亚洲人色久| 首页亚洲欧美制服丝腿| 91综合网人人| 国产成人精品一区二区三区视频|