SQLServerのインストールと郵便番号データのインポート

ファイヤーウォールのポート開放

コントロールパネルでファイアーウォールを検索
WindowsDefenderファイアウォールの詳細設定を表示
新しい規則で次のポートを開放
TCP 1433
UDP 1434
規則の名前はMSSqlserverとでもしておく

■SQLServer2017のインストール

コンピューターの管理のサービスとアプリケーションで
SQL構成マネージャーのネットワーク構成でプロトコルの名前付きパイプを有効にする
(ネットワーク越しに使用する場合はTCP/IPも有効にする)

■郵便局のページ

http://www.post.japanpost.jp/zipcode/download.html
から必要な郵便番号データをダウンロードする
(読み仮名データの促音・拗音を小書きで表記するものの全国一括)
ken_all.zipを解凍し別名KEN_ALL(更新日付とか).CSVにする

■MSSMSでデータベースを作成

ここではKEN_ALL

■MSSMSでテーブルを作成(テーブル名もKEN_ALL)

USE [KEN_ALL]
GO
/****** Object:  Table [dbo].[KEN_ALL]    Script Date: 2018/03/18 13:31:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[KEN_ALL](
 [cord] [varchar](100) NULL,
 [zip5] [varchar](100) NULL,
 [zip] [varchar](100) NULL,
 [todofukenkana] [varchar](100) NULL,
 [sikuchosonkana] [varchar](100) NULL,
 [choikikana] [varchar](100) NULL,
 [todofuken] [varchar](100) NULL,
 [sikuchoson] [varchar](100) NULL,
 [choiki] [varchar](100) NULL,
 [a] [varchar](1) NULL,
 [b] [varchar](1) NULL,
 [c] [varchar](1) NULL,
 [d] [varchar](1) NULL,
 [e] [varchar](1) NULL,
 [f] [varchar](1) NULL
) ON [PRIMARY]
GO

■管理者権限のコマンドプロンプトBCPでKEN_ALL(更新日付とか).CSVインポートする

>bcp KEN_ALL in c:\フォルダーパス\KEN_ALL().CSV -S <Server Name> -d KEN_ALL -U <Username> -P <password> -q -c -t,

コマンドオプションの説明

  • S サーバー名を指定します。省略した場合、既定のサーバーになります。
  • T 統合認証を使ってログインします。この場合ユーザー名、パスワードは必要ありません。
  • q 空白や単一引用符を含むデータベース名を指定するには、-q オプションを使用する必要があります。
  • c 文字データ型を使用して操作を実行します。 このオプションを使用すると、フィールドごとにプロンプトが表示されません。 char をプレフィックスなしのストレージ型として、また \t (タブ) をフィールド区切り文字、 \r\n (改行文字) を行ターミネータとして使用します。 -c は -w と互換性がありません。
  • t フィールド ターミネータを指定します。 既定値は \t (タブ文字) です。 既定のフィールド ターミネータを無効にする場合、このパラメーターを使用します。 詳細については、「フィールド ターミネータと行ターミネータの指定 (SQL Server)」をご覧ください。

bcp.exe コマンドでは、フィールド ターミネータを 16 進数表記で指定すると、値が 0x00 で切り捨てられます。 たとえば、0x410041 を指定した場合、使用されるのは 0x41 になります。
field_term がハイフン (-) またはスラッシュ (/) で始まる場合は、 -t と field_term 値の間に空白を入れないでください。

■sqlcmdで確認する

>sqlcmd -S <Server Name> -d KEN_ALL -U <Username> -P <Password> -Q "select + from KEN_ALL;"