ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

Visual StudioのLocalDb管理

LocalDb

Visual Studioから、ローカル用にLocalDbの追加が可能になっている。

※詳細については

SQL Server 2016 Express LocalDB | Microsoft Docs

Visual Studioから追加する。

サンプルプロジェクトはASP.NET MVC Webアプリケーションのルートから、マウス右クリックメニューから「追加」「SQLデータベース」 f:id:haronoid:20180425160022p:plain 新しいDB名を追加 f:id:haronoid:20180425160207p:plain App_Dataフォルダーに追加するか聞かれるが、素直にApp_Dataにしました。 f:id:haronoid:20180425160235p:plain

ソリューションにMyDbが追加される。 f:id:haronoid:20180425160331p:plain

ログインパスワードを設定する。

mdfファイルをダブルクリックするとVisual Studio内のSQL Serverオブジェクトエクスプローラが開きます。

照合順序の変更

デフォルトは「SQL_Latin1_General_CP1_CI_AS」になっており、日本語が文字化けするので、「Japanese_XJIS_100_CI_AI_WS」へ変更が必要

Visual Studio内のSQL ServerオブジェクトエクスプローラからLocalDbを開いて、新しいクエリを表示し、以下のコマンドを実行する。

SELECT DB_NAME()
GO

-- 上記DB_NAMEをDB名にして実行
USE [master]
GO
ALTER DATABASE [database_name] COLLATE Japanese_XJIS_100_CI_AI_WS
GO

テーブルに既にデータが貼っている場合

ALTER TABLE dbo.Table_1 
ALTER COLUMN NAME varchar(50) COLLATE Japanese_XJIS_100_CI_AI_WS;

接続文字列

ASP.NET MVCのプロジェクト内部に入れた場合はフォルダー名を|DataDirectory|にすることが可能

Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf
Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=|DataDirectory|MyDB1.mdf

MS SQL Server Management Studioから接続する。

接続文字列に(LocalDB){インスタンス名}で接続出来る。

(LocalDB)\MSSQLLocalDB

インスタンス名がわからない場合、「sqllocaldb.exe」で調べられる。

> sqllocaldb info
MSSQLLocalDB
ProjectsV13

sqlcmdで接続する場合

新しいDB作成及び、ログインの手順…

恐らく、LocalDbをサーバーリリスする場合、サーバーのローカルユーザーからLocalDbを作成しないと権限問題が発生する可能性があり、 以下のコマンドからサーバーでLocalDbを作成するコマンドを実行する必要がありそう。 サーバーにもSQL Server Express LocalDbをインストールする必要あり。

SqlLocalDB.exe create "DeptLocalDB"  
SqlLocalDB.exe share "DeptLocalDB" "DeptSharedLocalDB"  
SqlLocalDB.exe start "DeptLocalDB"  
SqlLocalDB.exe info "DeptLocalDB"  
REM The previous statement outputs the Instance pipe name for the next step  
sqlcmd –S np:\\.\pipe\LOCALDB#<use your pipe name>\tsql\query  
CREATE LOGIN NewLogin WITH PASSWORD = 'Passw0rd!!@52';   
GO  
CREATE USER NewLogin;  
GO  
EXIT  
sqlcmd –S (localdb)\.\DeptSharedLocalDB -U NewLogin -P Passw0rd!!@52  

参考: SqlLocalDB ユーティリティ | Microsoft Docs

ダウンロード: SQL Server Downloads | Microsoft