1 つの方法は、SSMS のクエリ メニューで [Results to Text] を設定してから、以下を実行することです。
実際に変更を行うわけではありませんが、確認して実行するスクリプトが生成されます。
SET NOCOUNT ON;
DECLARE @user_name SYSNAME
, @login_name SYSNAME;
SELECT @user_name = 'user_name',
@login_name = 'login_name'
SELECT '
USE ' + QUOTENAME(NAME) + ';
CREATE USER ' + QUOTENAME(@user_name)
+ ' FOR LOGIN ' + QUOTENAME(@login_name)
+ ' WITH DEFAULT_SCHEMA=[dbo];
EXEC sys.sp_addrolemember
''db_datareader'',
''' + QUOTENAME(@user_name) + ''';
EXEC sys.sp_addrolemember
''db_denydatawriter'',
'''
+ QUOTENAME(@user_name) + ''';
GO
'
FROM sys.databases
WHERE database_id > 4
AND state_desc = 'ONLINE'
または、sys.sp_MSforeachdb
を見ることができます こちら または Aaron Bertrand の改良版 こちら
これを実行してもすべての文字が表示されない場合は、[テキストのクエリ オプション] を開き、[各列に表示される最大文字数] の設定を確認してください。これがすべての文字を表示するのに十分な大きさの値に設定されていることを確認してください。