0
0

MacでSQL Serverを動かしてsqlcmdとNode.jsからアクセスしてみる(2022)

Last updated at Posted at 2022-11-16

node.jsからSQL Serverいじる必要が発生するかもしれないのでメモ。

SQL Serverの起動

MacでSQL Serverを動かすにはDockerを使います。

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=P@ssw0rd!" -p 1433:1433 -d mcr.microsoft.com/mssql/server

パスワードが簡単過ぎるとだめみたい。

sqlcmd

SQL Server標準のクライアントツールをインストールします。

使いにくいのでpythonツールであるmssql-cliを利用しようと思いますたが、Python3.10.xで動かず断念。
Azure Data Studioという感じGUIツールも使えます。

インストール

インストールはBrewでできるみたいです。

brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew install mssql-tools

利用

簡単な操作方法はこちらをご覧ください。

ログイン

sqlcmd -S server -U user -P password

データベース作成

create database testdb;
go

データベース切替

use testdb;
go

テーブル作成

create table members(
 id int identity(1,1) primary key,
 name nvarchar(32),
 age int
);
go

データ挿入

insert into members(name,age) values('hoge',10);
go

Node.jsからアクセスしてみる

以前はSQL Serverへの接続にはtediousというモジュールを使っていましたが、最近はnode-mssqlというのがあるみたいなので、そっちを利用してみます。

開発元は同じようです。

インストール

npm install mssql

実装

本当はpoolとか使ったほうがいいのでしょうけど、とりあえず接続+Selectのみ。

index.js
const sql = require("mssql");

const config = {
    server: "localhost",
    user: "sa",
    password: "P@ssw0rd!",
    database: "testdb",
    options: {
        // enableArithAbort: true,
        encrypt: false,
    }
};

(async () => {

    try {
        const conn = await sql.connect(config);

        const query = await conn.query("select * from members");
        query.recordset.forEach(async row => {
            console.log(`id: ${row.id} name:${row.name} age:${row.age}`);
        });

        conn.close();
    } catch (e) {
        console.log(e);
    }

})();

動作確認

node index.js

id: 1 name:hoge age:10

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0