SQL-DMO を使って VBScript で簡単に取得する事ができます。但し、SQL-DMO は最新の環境からは削除されています。SQL Server データベース管理オブジェクト (SQL-DMO) は、SQL Server 2008 R2 Express および SQL Server 2008 R2 Feature Pack から削除されました。ですが、個別にインストールしてサポートできるようになっています。Microsoft SQL Server 2005 の旧バージョンとの互換性コンポーネントSQL Server 下位互換パッケージには、最新バージョンの DTS (データ変換サービス) 2000 ランタイム、SQL 分散管理オブジェクト (SQL-DMO)、意思決定支援オブジェクト (DSO)、SQL 仮想デバイス インターフェイス (SQLVDI) が含まれています。これらのバージョンは SQL Server 2005 および SQL Server 2008 との互換性を維持するために更新されたもので、SQL Server 2000 Service Pack 4 (SP4) と SQL Server 2005 SP2 で配布されたすべての修正が含まれています。 対象: カスタマー、パートナー、開発者 X86 パッケージ (SQLServer2005_BC.msi) X64 パッケージ (SQLServer2005_BC.msi) IA64 パッケージ (SQLServer2005_BC.msi)インストール時の選択 インストールするとすぐ利用可能になるので、以下のスクリプトを利用可能です。
' ********************************************************** ' 変数定義 ' ********************************************************** Dim Server : Server = "サーバ" Dim Db : Db = "データベース" Dim User : User = "sa" Dim Pass : Pass = "パスワード" Dim ListTable : ListTable = "TR_出席,TR_成績2,TR_成績3" Dim List : List = Split( ListTable, "," ) Dim objServer,objDatabase,objTable,Fso,TargetFile Set Fso = CreateObject( "Scripting.FileSystemObject" ) ' ********************************************************** ' オブジェクト作成 ' ********************************************************** on error resume next Set objServer = CreateObject("SQLDMO.SQLServer") if Err.Number <> 0 then Wscript.Echo "SQL-DMO はインストールされていません" Wscript.Quit end if on error goto 0 ' ********************************************************** ' 接続 ' ********************************************************** on error resume next Call objServer.Connect( Server, User, Pass ) if Err.Number <> 0 then Wscript.Echo "接続に失敗しました [" & Err.Description & "]" Wscript.Quit end if on error goto 0 ' ********************************************************** ' データーベースオブジェクト取得 ' ********************************************************** on error resume next Set objDatabase = objServer.Databases(Db) if Err.Number <> 0 then Wscript.Echo Err.Description Wscript.Quit end if on error goto 0 ' ********************************************************** ' テーブルオブジェクト ' ********************************************************** Set TargetFile = Fso.OpenTextFile( "定義ファイル.sql", 2, True ) on error resume next For i = 0 to Ubound( List ) Set objTable = objDatabase.Tables(List(i)) if Err.Number <> 0 then Wscript.Echo Err.Description Wscript.Quit end if ' 定義を一つ出力 TargetFile.WriteLine objTable.Script() Next on error goto 0 TargetFile.Close() ' ********************************************************** ' 切断 ' ********************************************************** Call objServer.DisConnect()
CREATE 文は システムが出力しているので、作成した時と違った厳密な記述がされているので注意して下さい。 作成時CREATE TABLE TR_成績3 ( コード int, 行1 varchar (20), 行2 varchar (20), 行3 varchar (20), 行4 varchar (20), 行5 varchar (20), 行6 varchar (20), 行7 varchar (20), 行8 varchar (20), 備考 varchar (1024), PRIMARY KEY (コード) )システムからの出力CREATE TABLE [TR_成績3] ( [コード] [int] NOT NULL , [行1] [varchar] (20) COLLATE Japanese_CI_AS NULL , [行2] [varchar] (20) COLLATE Japanese_CI_AS NULL , [行3] [varchar] (20) COLLATE Japanese_CI_AS NULL , [行4] [varchar] (20) COLLATE Japanese_CI_AS NULL , [行5] [varchar] (20) COLLATE Japanese_CI_AS NULL , [行6] [varchar] (20) COLLATE Japanese_CI_AS NULL , [行7] [varchar] (20) COLLATE Japanese_CI_AS NULL , [行8] [varchar] (20) COLLATE Japanese_CI_AS NULL , [備考] [varchar] (1024) COLLATE Japanese_CI_AS NULL , PRIMARY KEY CLUSTERED ( [コード] ) ON [PRIMARY] ) ON [PRIMARY] GO
|
【SQLExpressの最新記事】
- SQLServer の BCP で INT IDENTITY 列に csv からリストアする
- VBScript : ADO : ODBC接続 : SQLExpress(SQLServer) 接続と通常処理( 更新は SQL で行う )
- Microsoft SQLExpress : sa に空のパスワードを設定する方法
- SQLExpress バッチ DB バックアップ
- C# : VB.net : SQLExpress(SQLServer) : SQL-DMO と同等の SMO によるバックアップ
- 各RDBMS の正規表現の実装状況 : MySQL, SQLServer, PostgreSQL, Oracle
- SQLServer の OPENDATASOURCE 関数による Excel の参照( Microsoft.Jet.OLEDB.4.0 と Microsoft.ACE.OLEDB.12.0 )
- SQLServer(SQLExpress) : SQL学習用販売管理データとインポート用スクリプト
- SQLExpress 2005( および 2008 ) の接続設定
- ファイルから直接データベースを別のPCでリストアする / SQLExpress
- 目的のDBが使用している物理ファイルのパスの確認 / SQLExpress
- ピンポイントですが、SQLServer 2008 は SQLServer 7.0 のデータをロード出来ないのです
- SQLExpress2005 で副問い合わせを含む VIEW が異常終了しました
- VBS : SQLServerよりExcel へエクスポート(Excel製品は必要ありません)
- SQLServer のドキュメント
- VBS : SQLExpress(SQLServer) テーブルの正しい CREATE 文を取得する
- PHP : SQLExpress(SQLserver) : COM による接続処理
- PHP : PDO : SQLExpress(SQLServer)の読み込みと同時更新
- ODBC 用 JDBC : 動的接続 / SQLExpress(SQLServer) / 読み込みながらの行更新
- VBScript : ADO : 純正接続 : SQLExpress(SQLServer) 接続と通常処理