SQL Server exports the insert into script

Source: Internet
Author: User
Create procedure DBO. uspoutputdata @ 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 -- determine whether the object has a begin print 'the object not exist' return end set @ OBJ Ectname = object_name (@ objectid) If @ objectname is null or charindex (@ objectname, @ tablename) = 0 -- this judgment is not strict. Begin print 'object not in current database' return end if objectproperty (@ objectid, 'istable ') <> 1 -- determine whether the primary object is table begin print 'the object is not table' 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' 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 does not need to be processed, image, text, ntext, SQL _variant does not process begin set @ col Umn = @ 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 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' go: exec uspoutputdata your table name gets the statement for exporting data, but image, text, the ntext and SQL _variant columns do not appear in the current statement and will be improved later.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.