儲存過程 一鍵生成所有實體類

2021-06-06 07:37:23 字數 3595 閱讀 2472

sql code

setansi_nulls

onset

quoted_identifier

ongo

alter

proc

[dbo].

[p_db_wsp

]@dbname

varchar(50

) ,

--資料庫名

@path

varchar

(100

) ,

--實體類所在目錄名,如d:/my/models

@namespace

varchar(50

) --

實體類命名空間,預設值為models

as--

判斷資料庫是否存在

if(

db_id

(@dbname

) is

notnull

)

begin

if(

isnull

(@namespace

, '') =

'')

set@namespace='

models'--

允許配置高階選項

exec

sp_configure

'show advanced options',

1--重新配置

reconfigure

--啟用ole automation procedures

exec

sp_configure

'ole automation procedures',

1--啟用xp_cmdshell,可以向磁碟中寫入檔案

exec

sp_configure

'xp_cmdshell',

1--重新配置

reconfigure

declare

@dbsql

varchar

(1000

) ,

@tablename

varchar

(100

)

set@dbsql='

declare wsp cursor for select name from '+

@dbname+'

..sysobjects where xtype=''u

''and name <>

''sysdiagrams

'''exec

(@dbsql

)

open

wsp

fetch

wsp

into

@tablename

--使用游標迴圈遍歷資料庫中每個表

while

( @@fetch_status=0

)

begin

--根據表中字段組合實體類中的字段和屬性

declare

@nsql

nvarchar

(4000

) ,

@sql

varchar

(8000

)

set@nsql='

select @s=isnull(@s+char(9)+

''private '',

''using system;'+

char(13

) +'using system.collections.generic;'+

char(13

) +'using system.text;'+

char(13

) +'

namespace '+

@namespace

+char(13

) +'''

+char(13)

from '+

@dbname+'

..syscolumns b,

(select distinct name,xtype from '+

@dbname+'

..systypes where status=0) a

where a.xtype=b.xtype and b.id=object_id(

'''+

@dbname+'

..'+@tablename

+''')'

exec

sp_executesql

@nsql

, n'

@s varchar(8000) output',

@sql

output

set@sql

=@sql

+char(9

) +'}

'+char(13

) +'}

'--print @sql

declare

@err

int,

@fso

int,

@fleexists

bit,

@file

varchar

(100

)

set@file

=@path+'

/'+@tablename+'

.cs'

exec

@err

=sp_oacreate

'scripting.filesystemobject',

@fso

output

exec

@err

=sp_oamethod

@fso, '

fileexists',

@fleexists

output,

@file

exec

@err

=sp_oadestroy

@fso

if@fleexists!=0

exec('

exec xp_cmdshell

''del '+

@file

+''''

) --

存在則刪除

exec('

exec xp_cmdshell

''echo '+

@sql+'

> '+

@file

+''''

) --

將文字寫進檔案中

set@sql

=null

fetch

wsp

into

@tablename

endclose

wsp

deallocate

wsp

print

'生成成功!

'end

else

print

'資料庫不存在!

'

實現ORM模型一鍵生成實體類

使用方法 配置resources generactor.properties檔案 在com.dgy.main中執行main方法 主要的方法 取得mysql資料庫的表的字段資訊 查詢乙個表的所有列資訊 param tablename return public static mapgetcloumin...

一鍵生成索引新語句

select d.name c.name a.name a.type desc begin try if object id quotename d.name quotename c.name is not null and not exists select 1 from sys.indexes ...

一鍵生成官網 全

你好!不管你是計算機小白或者是老手,這些知識都能對您用幫助!1 阿里雲伺服器一台 centos7.4 64 最少1核2g 並開通oss,並準備好解析好的網域名稱 2 安全組開放80埠 22埠 3 遠端登陸伺服器 4 命令列鍵入 大概60分鐘左右完成安裝 wget p root wget p root...