为sql数据库表数据生成insert脚本.doc

为sql数据库表数据生成insert脚本.doc

ID:51697770

大小:40.50 KB

页数:6页

时间:2020-03-15

为sql数据库表数据生成insert脚本.doc_第1页
为sql数据库表数据生成insert脚本.doc_第2页
为sql数据库表数据生成insert脚本.doc_第3页
为sql数据库表数据生成insert脚本.doc_第4页
为sql数据库表数据生成insert脚本.doc_第5页
资源描述:

《为sql数据库表数据生成insert脚本.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、为sqlserver数据库表数据生成insert脚本使用SQLServer自带的“生成SQL脚本”工具,可以生成创建表、视图、存储过程等的SQL脚本。那么,能否将表中的数据也生成为SQL脚本,在查询分析器中执行这些脚本后自动将数据导入到SQLServer中呢?答案是肯定的,网上收集资料如下:CREATEPROCEDUREdbo.OutputData@tablenamesysnameASdeclare@columnvarchar(1000)declare@columndatavarchar(1000)decl

2、are@sqlvarchar(4000)declare@xtypetinyintdeclare@namesysnamedeclare@objectIdintdeclare@objectnamesysnamedeclare@identintsetnocountonset@objectId=object_id(@tablename)if@objectIdisnull--判断对象是否存在beginprint@tablename+'对象不存在'returnendset@objectname=rtrim(object

3、_name(@objectId))if@objectnameisnullorcharindex(@objectname,@tablename)=0beginprint@tablename+'对象不在当前数据库中'returnendifOBJECTPROPERTY(@objectId,'IsTable')<>1--判断对象是否是表beginprint@tablename+'对象不是表'returnendselect@ident=status&0x80fromsyscolumnswhereid=@objecti

4、dandstatus&0x80=0x80if@identisnotnullprint'SETIDENTITY_INSERT'+@TableName+'ON'--定义游标,循环取数据并生成Insert语句declaresyscolumns_cursorcursorforselectc.name,c.xtypefromsyscolumnscwherec.id=@objectidorderbyc.colid--打开游标opensyscolumns_cursorset@column=''set@columndata

5、=''fetchnextfromsyscolumns_cursorinto@name,@xtypewhile@@fetch_status<>-1beginif@@fetch_status<>-2beginif@xtypenotin(189,34,35,99,98)--timestamp不需处理,image,text,ntext,sql_variant暂时不处理beginset@column=@column+casewhenlen(@column)=0then''else','end+@nameset@col

6、umndata=@columndata+casewhenlen(@columndata)=0then''else','','','end+casewhen@xtypein(167,175)then'''''''''+'+@name+'+'''''''''--varchar,charwhen@xtypein(231,239)then'''N''''''+'+@name+'+'''''''''--nvarchar,ncharwhen@xtype=61then'''''''''+convert(char(23),

7、'+@name+',121)+'''''''''--datetimewhen@xtype=58then'''''''''+convert(char(16),'+@name+',120)+'''''''''--smalldatetimewhen@xtype=36then'''''''''+convert(char(36),'+@name+')+'''''''''--uniqueidentifierelse@nameendendendfetchnextfromsyscolumns_cursorinto@name

8、,@xtypeendclosesyscolumns_cursordeallocatesyscolumns_cursorset@sql='setnocountonselect''insert'+@tablename+'('+@column+')values(''as''--'','+@columndata+','')''from'+@tablenameprint'--'+@sqlexec(@sql)if@ident

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。