SQL獲取表結構的show_table.vbs (冰點極限NP)
來源:易賢網 閱讀:1361 次 日期:2016-07-07 16:25:41
溫馨提示:易賢網小編為您整理了“SQL獲取表結構的show_table.vbs (冰點極限NP)”,方便廣大網友查閱!

SQL獲取表結構的show_table.vbs,用vbs實現查看sql數據庫的表結構的代碼。需要傳入用戶名密碼與數據庫名稱,具體的看程序幫助。

代碼如下:

set arg=wscript.arguments

If arg.count = 0 Then

show_help()

wsh.quit

End If

Server = arg(0)

User = arg(1)

pass = arg(2)

database_name = arg(3)

table_name = arg(4)

set Conn = CreateObject("ADODB.Connection")

Conn.Open "Driver={SQL Server};Server=" & Server & ";UID=" & User & ";PWD=" & Pass & ";Database=" & database_name

Set rs = conn.execute("select count(*) as n from " & database_name & ".dbo.sysobjects where id = object_id(N'[dbo].[" & table_name & "]')")

if rs("n") <=0 Then

wsh.echo "table have???"

wsh.quit

End If

sql1="use " &database_name & ";select count(column_name) from information_schema.columns where table_name='" & table_name & "'"

set rs1=conn.execute(sql1)

num = rs1(0)

rs1.close

Set rs1 = Nothing

i = 1

sql2="use " &database_name & ";select column_name,data_type,IS_NULLABLE,character_octet_length,collation_name,domain_name from information_schema.columns where table_name='" & table_name & "' order by ordinal_position"

'wsh.echo sql2

set rs2=conn.execute (sql2)

wsh.echo "if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[" & table_name & "]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)"

wsh.echo "drop table [dbo].[" & table_name & "]"

wsh.echo "GO"

wsh.echo "CREATE TABLE [dbo].[" & table_name & "] ("

do while not rs2.eof

col_dn = rs2("domain_name")

col_name = rs2("column_name")

col_type = rs2("data_type")

col_len = rs2("character_octet_length")

col_an = rs2("collation_name")

col_is = rs2("IS_NULLABLE")

sql = chr(9)&"[" & col_name & "] "

If col_dn = "id" Then

sql = sql & col_dn &" "

Else

sql = sql & "[" & col_type & "] "

If col_len <> "" Then

sql = sql & "(" & col_len & ") "

End If

If col_an <> "" Then

sql = sql & "COLLATE " & col_an

End If

End If

If col_is = "No" Then

sql = sql & " NOT NULL "

Else

sql = sql & " NULL "

End If

If i = num Then

sql = sql & Chr(13)&Chr(10)&") ON [PRIMARY]"

Else

sql = sql & ","

End If

i = i +1

wsh.echo sql

rs2.movenext

loop

wsh.echo "GO"

rs2.close

Set rs2 = Nothing

conn.close

Set conn=Nothing

Sub show_help()

wsh.echo "code by N37P47ch "

wsh.echo "cscript show_table.vbs ip user pass database table"

End Sub

更多信息請查看腳本欄目

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網