SQL Serverで改行コードを発見・置換

SELECT * FROM table
WHERE name LIKE '%' + CHAR(13) + '%';
SELECT * FROM table 
WHERE name LIKE '%' + CHAR(13) + CHAR(10) + '%';
SELECT * FROM table 
WHERE name LIKE '%' + NCHAR(13) + NCHAR(10) + '%'; 
UPDATE table SET 
name = REPLACE(name, CHAR(13), ' ');
UPDATE table SET 
name = REPLACE(name, CHAR(13) + CHAR(10), ' ');
UPDATE table SET 
name = REPLACE(name, NCHAR(13) + NCHAR(10), ' '); 

Docker内のSQL ServerにRESTORE DATABASE

dockerコマンドで、SQL Server のデータファイルを確認する。

docker exec -it docker-id /bin/bash
ls /var/opt/mssql/data/

docker内にバックアップファイルをコピーする。

docker cp xxx docker-id:/etc/xxx

バックアップファイルの確認

restore headeronly from DISK = '/etc/xxx';
restore filelistonly from DISK ='/etc/xxx' with file = 1;

上で出てきた要素に対してMOVEオプションを使って
SQL Server の、”異なる環境に’RESTORE DATABASE

restore database xxx from DISK ='/etc/xxx'
with move 'aaa' to '/var/opt/mssql/data/aaa.mdf',
move 'aaa_log' to '/var/opt/mssql/data/aaa.ldf';

SQL Serverでバックアップから復元後にログインできない

一つの原因として、
復元したデータベースのユーザーと、稼働しているサーバーのログインが、うまくマッピングできなくなることがあります。

これはSSMSのGUIからは対処不可で、ログインからユーザーマッピングしても「ユーザー、グループ、またはロールは現在のデータベースに既に存在します。」ということになります。

クエリを作って対応します。

Use [データベース名]
ALTER USER データベースのユーザー WITH LOGIN = ログインのユーザー

SQL Server ユーザー設定 コマンド

/* ログイン一覧 */
SELECT * FROM syslogins;

/* SQL Server 認証を使用する ログインの作成 */
CREATE LOGIN <login name> WITH PASSWORD = '<password>';

/* ユーザー一覧 */
USE <DB name>;
SELECT * FROM sysusers;

/* ログインに基づくユーザーの作成 */
USE <DB name>;
CREATE USER <login name>;

/* 固定サーバーロールにログインを追加する */
ALTER SERVER ROLE <role name> ADD MEMBER <login name> ;

/* 固定データベースロールにユーザーを追加する */
ALTER ROLE <role name> ADD MEMBER <login name> ;


OSXの.NET Core で libgdiplusが見つからないエラー

DllNotFoundException: Unable to load DLL 'libgdiplus'

とか出る場合です。 私自身は、ClosedXMLの実行時に遭遇しました。

libgdiplusは、 Windows標準のDLL(libgdiplus.dll)
OSX環境でも、/usr/local/libなどに、libgdiplus.dylib が入っている。
(今の時点で、monoか、.net core 自体が入れるのか不明だが)

問題はこれを見つけられないことなので、環境変数 LD_LIBRARY_PATH にlibgdiplus.dylibがあるパスを追加する。
.bash_profile に

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

とし、その後

source ./.bash_profile

下記を参照

http://www.mono-project.com/docs/gui/problemgdiplusinit/