<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    hyljava

    SQL Server 里面的生成SQL腳本

    通常情況下,SQL Server里面的生成SQL腳本,只會包含數(shù)據(jù)庫及表的字段結(jié)構(gòu),而不會包含表的數(shù)據(jù),也就是SQL腳本里面只有Create database,Create table 這樣的語句,沒有insert into。
    因為SQL Server并不包含這個功能,只能靠第三方的代碼了。
    以下存儲過程可以實現(xiàn):
    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 -- 判斷對象是否存在
    begin
    print 'The object not exists'
    return
    end
    set @objectname=rtrim(object_name(@objectId))
    if @objectname is null or charindex(@objectname,@tablename)=0 --此判斷不嚴(yán)密
    begin
    print 'object not in current database'
    return
    end
    if OBJECTPROPERTY(@objectId,'IsTable') < > 1 -- 判斷對象是否是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不需處理,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'
    GO
     
    使用方法:
    exec UspOutputData 你的表名
    選擇【執(zhí)行模式】為“以文本顯示結(jié)果”,然后將運(yùn)行后的結(jié)果存成.sql,加上用SQL Server生成的數(shù)據(jù)庫腳本就可以了。
    另外可以利用第三方工具,導(dǎo)出數(shù)據(jù)可以用powerbuilder。在database painter里面,用SQL選出,或者直接打開表,點(diǎn)擊生成的list datawindow,然后在菜單file->save rows as->選擇SQL,那么生成的SQL語句就包括建表和insert數(shù)據(jù)的SQL了。

    轉(zhuǎn)載:http://blog.sina.com.cn/s/blog_49b531af0100i74v.html

    posted on 2014-01-09 13:34 何云隆 閱讀(138) 評論(0)  編輯  收藏 所屬分類: SQL Server


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 美女被艹免费视频| 极品色天使在线婷婷天堂亚洲 | 亚洲国产美女精品久久| 亚洲免费视频在线观看| 国产av无码专区亚洲av桃花庵| 国产黄在线观看免费观看不卡| 亚洲国产精品视频| 一级特黄录像视频免费| 亚洲午夜av影院| 黄色视频在线免费观看| 亚洲愉拍99热成人精品热久久| 久久性生大片免费观看性| 亚洲精品无码久久千人斩| 国产免费黄色无码视频| 亚洲国产精品无码一线岛国| 一级日本高清视频免费观看| 国产aⅴ无码专区亚洲av麻豆| 本免费AV无码专区一区| 亚洲高清国产AV拍精品青青草原 | 中文在线免费看视频| 亚洲处破女AV日韩精品| 精品熟女少妇a∨免费久久| 亚洲欧洲国产综合| 无码视频免费一区二三区| 亚洲AV无码一区二区三区久久精品| 免费国产a国产片高清| 三级毛片在线免费观看| 久久亚洲国产成人精品性色| 免费国产作爱视频网站| 女bbbbxxxx另类亚洲| 亚洲国产日韩在线视频| 国产四虎免费精品视频| 国产99久久亚洲综合精品| 亚洲色大成网站WWW久久九九| 久久综合国产乱子伦精品免费| 国产精品亚洲精品观看不卡| 国产精品亚洲αv天堂无码| 好吊色永久免费视频大全| 亚洲欧洲国产综合| 亚洲AV日韩精品一区二区三区| 四虎影视无码永久免费|