Skip to content

This is a SQLBulkCopy Wrapper for using PowerShell.

License

Notifications You must be signed in to change notification settings

neko3cs/PSSQLBulkCopy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PSSQLBulkCopy

SQLBulkCopyをラップした、PowerShellコマンドレットです。

テーブル名とCSVファイルパスを指定することで任意のテーブルにCSVの値を登録することが出来ます。

インストール方法

パッケージはPowerShell Galleryへ公開してあります。

PowerShell Gallery | PSSQLBulkCopy 1.0.0

従って、以下のコマンドでインストールすることが出来ます。

Install-Module -Name PSSQLBulkCopy

常用するようであれば、 $PROFILEImport-Module -Name PSSQLBulkCopy を記述しておくと良いと思います。

使用方法

サポートされたフォーマットにしたがって用意したCSVをコマンドレットに渡します。

Invoke-SqlBulkCopy `
  -ServerInstance {SQL Serverのサーバーインスタンス名, default: 実行端末のコンピューター名} `
  -Database {対象データベース名} `
  -Username {対象データベースのユーザー名} `
  -Password {対象データベースのユーザーパスワード} `
  -TableName {バルクコピー先のテーブル名} `
  -CsvFilePath {後述のフォーマットに従ったCSVファイルのパス}
  -ConnectionTimeout {接続タイムアウト時間(秒), default: 15秒}

詳細な情報は Get-Help コマンドレットで確認してください。

サポートするCSVのフォーマットは以下の通りになります。

  • 1行目: カラム名
  • 2行目: SQL Server型名
    • ? をつけるとNULL許容として認識します
  • 3行目以降: 値
    • DBNULL とするとNULLで格納されます

以下がサンプルになります。

Id,Name,Age,IsMale
int,nvarchar,int,bit?
1,Bob,20,1
2,Alice,21,0
3,John,22,DBNULL

型一覧表

以下はSQL Serverデータ型とC#データ型のマッピングになります。

内部的には以下の型ように扱われます。参考資料として載せておきます。

SQL Server C#
bigint long
binary byte[]
bit bool
char string
datetime DateTime
decimal decimal
float double
image byte[]
int int
money decimal
nchar string
ntext string
nvarchar string
real float
uniqueidentifier Guid
smalldatetime DateTime
smallint short
smallmoney decimal
text string
timestamp byte[]
tinyint byte
varbinary byte[]
varchar string
variant object
xml XmlElement
udt -
structured -
date DateTime
time TimeSpan
datetime2 DateTime
datetimeoffset DateTimeOffset
  • udtとstructuredはSQL Serverの特殊な型のため、未対応です
  • byte[], Guid, object, XmlElement, DateTimeOffsetに関しては動作未確認です
    • TODO: いずれテストする

参考文献

About

This is a SQLBulkCopy Wrapper for using PowerShell.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published