生成表結構

2021-06-03 07:11:38 字數 2224 閱讀 5046

2005-08-02 t-sql store procedure 修訂為:

完全不受字段數量或字段值影響 而生成正確完整的 insert into ... sql

alter procedure z_sp_geninsertsql

( @tablename varchar(256)

,@whereclause varchar(1000) = 'where 1 = 1')as

begin

/*usage:

z_sp_geninsertsql '表名','where '

*/ declare @sql varchar(8000)

declare @sqlvalues varchar(8000)

set @sql =' ''(''' + char(13) + ','

set @sqlvalues = ' values ('''+ char(13) + ','

select @sqlvalues = @sqlvalues + cols + ' + '',' + '''' + char(13) + ','

,@sql = @sql + '''[' + name + '],''' + char(13) + ','

from

(select

case

when xtype in (48,52,56,59,60,62,104,106,108,122,127)

then 'case when '+ name + ' is null then ''null'' else ' + 'cast(' + name + ' as varchar)' + ' end'

when xtype in (58,61)

then 'case when '+ name + ' is null then ''null'' else ' + ''''''''' + ' + 'cast(' + name + ' as varchar)' + '+''''''''' + ' end'

when xtype in (167,175)

then 'case when '+ name + ' is null then ''null'' else ' + ''''''''' + ' + 'replace(' + name + ','''''''','''''''''''')' + ' + ''''''''' + ' end'

when xtype in (231,239)

then 'case when '+ name + ' is null then ''null'' else ' + '''n'''''' + ' + 'replace(' + name + ','''''''','''''''''''')' + ' + ''''''''' + ' end'

else '''null'''

end as cols

,name

from syscolumns

where id = object_id(@tablename)

--and autoval is null --忽略自增整型字段

) tset @sql = 'select ' + char(13) + '''insert into '''+ char(13) + ','

+ '''['+ @tablename + ']''' + char(13) + ','

+ left(@sql,len(@sql)-4) + '''' + char(13) + ','')' + left(@sqlvalues,len(@sqlvalues)-7) + ','')'''

+ char(13) + 'from [' + @tablename + ']'

+ char(13) + @whereclause

--select @sql -- select sql 被截斷

print @sql -- print sql 是完整正確的

exec (@sql)

/*select *

from syscolumns

where id = object_id('test') and autoval is null

*/end

不過在我的資料庫中有幾個表未能生成成功,經分析原來資料庫某些列有西文組合字元,被截斷了,遂將兩變數宣告該為: 

declare @sql nvarchar(max) 

declare @sqlvalues nvarchar(max) 

問題解決。

生成sql表結構

dataconstruct.php created by phpstorm.user administrator date 2017 7 21 time 14 26 列子 pdo new dataconstruct tables pdo getalltablenames pdo printlog p...

hibernate 自動生成表結構

hibernate 自動生成表結構 方法 在xx.cfg.xml 裡面,或者你用spring 配置的檔案,需要屬性 value 值 validate create create drop,update create 每次載入hibernate時都會刪除上一次的生成的表,然後根據你的model類再重新...

PowerDesginer生成表結構到資料庫

繼續朋友的mysql轉sqlserver的問題。表已經逆向出來了,dbms也修改了 最後就是生成表到sqlserver資料庫中了。最後一步啦 大功即將告成。1.斷開oracle的鏈結 database disconnect 2.連線到sqlserver 操作步驟和逆向工程的一樣,這裡就不累贅了。3....