😊

SQL Server を最低限覚えたい

に公開
2026/08/17

SQL Server コマンド覚書

sqlcmd例

  • バージョン確認
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
select @@version
"
  • データベース作成
sqlcmd -S mssql1 -U admin -PP#ssw0rd -Q 'create database sample'
  • データベース一覧
sqlcmd -S mssql1 -U admin -PP#ssw0rd -Q 'select name,create_date from sys.databases'
  • テーブル一覧
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q 'select name from sysobjects where xtype="u"'
  • テーブル作成
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
create table dbo.Sample_Table (Number nvarchar(10) not null, First_Name nvarchar(50) not null, Last_Name nvarchar(50) null, Last_Update date not null );
"
  • テーブルコピー
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d test1 -Q "
select * into test1.zzz from test1.item1
  • データ挿入
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
insert into  dbo.Sample_Table values ('100', 'XXX', 'YYY', '2017-10-05' )
"
  • テーブル参照
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
select * from dbo.Sample_Table
"
  • データ削除
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
delete from dbo.Sample_Table
"
  • データ切り捨て
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
truncate table dbo.Sample_Table
"
  • 現在時刻
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
select sysdatetime()
"
  • 現在のユーザー
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
select current_user
"
  • SSL暗号化接続かどうか
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID
"

BCP (bulk copy program)

  • 特定のテーブルをエクスポート
bcp sample.dbo.Sample_Table out test.txt -c -t, -S mssql1 -U admin -PP#ssw0rd
  • 特定のテーブルをインポート
bcp sample.dbo.Sample_Table out test.txt -c -t, -S mssql1 -U admin -PP#ssw0rd
  • 指定のクエリ結果をエクスポート
bcp "select * from sample.dbo.Sample_Table" queryout test.txt -c -t, -S mssql1 -U admin -PP#ssw0rd

ストアドプロシージャ

  • 完全バックアップ to S3
exec msdb.dbo.rds_backup_database
@source_db_name='test1',
@s3_arn_to_backup_to='arn:aws:s3:::xxxxxxxx/backup/sqlserver/sqlserver_test.bak',
@overwrite_S3_backup_file=1;
  • 差分バックアップ to S3
exec msdb.dbo.rds_backup_database
@source_db_name='test1',
@s3_arn_to_backup_to='arn:aws:s3:::xxxxxxxx/backup/sqlserver/sqlserver_test1_dif.bak',
@overwrite_s3_backup_file=1,
@type='DIFFERENTIAL';
  • バックアップ進捗確認
exec msdb.dbo.rds_task_status
exec msdb.dbo.rds_task_status @db_name='sample'
exec msdb.dbo.rds_task_status @db_name='test1'
  • フルリストアでオンライン化
exec msdb.dbo.rds_restore_database
@restore_db_name='test1',
@s3_arn_to_restore_from='arn:aws:s3:::xxxxxxxx/backup/sqlserver/sqlserver_test.bak',
@with_norecovery=0;
  • フルリストア+差分リストアでオンライン化
exec msdb.dbo.rds_restore_database
@restore_db_name='test1',
@s3_arn_to_restore_from='arn:aws:s3:::xxxxxxxx/backup/sqlserver/sqlserver_test.bak',
@with_norecovery=1;

exec msdb.dbo.rds_restore_database
@restore_db_name='test1',
@s3_arn_to_restore_from='arn:aws:s3:::xxxxxxxx/backup/sqlserver/sqlserver_test1_dif.bak',
@type='DIFFERENTIAL',
@with_norecovery=0;

test data

sqlcmd -S xxx,1433 -U root -P*** -d sample <<'EOF'
-- Drop existing test table if present, then recreate
IF OBJECT_ID('dbo.TestData', 'U') IS NOT NULL
    DROP TABLE dbo.TestData;
GO

-- Row size ~ 900 bytes (adjust column width to change total data size)
CREATE TABLE dbo.TestData (
    Id INT IDENTITY(1,1) PRIMARY KEY,
    Col1 CHAR(900) NOT NULL
);
GO

-- Insert 10,000 rows per batch, repeated 360 times = 3,600,000 rows (~3GB)
-- master..spt_values is a built-in system table guaranteed to exist with enough rows
INSERT INTO dbo.TestData (Col1)
SELECT TOP (10000) REPLICATE('A', 900)
FROM master..spt_values a
CROSS JOIN master..spt_values b;
GO 360

-- Verify actual generated size
EXEC sp_spaceused 'dbo.TestData';
GO
EOF

参考資料

  • DBM

https://docs.microsoft.com/ja-jp/sql/database-engine/database-mirroring/database-mirroring-sql-server?view=sql-server-ver15

  • セッション情報

https://docs.microsoft.com/ja-jp/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-sessions-transact-sql?redirectedfrom=MSDN&view=sql-server-ver16

  • AG

https://docs.microsoft.com/ja-jp/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server?view=sql-server-ver15

  • CDC

https://docs.microsoft.com/ja-jp/sql/relational-databases/track-changes/track-data-changes-sql-server?view=sql-server-ver15#Capture

  • 復旧モデル

https://docs.microsoft.com/ja-jp/sql/relational-databases/backup-restore/recovery-models-sql-server?view=sql-server-ver15

  • トランザクションモデル

https://docs.microsoft.com/ja-jp/sql/relational-databases/logs/the-transaction-log-sql-server?view=sql-server-ver15

  • RDS SQLServer の Audit

https://dev.classmethod.jp/articles/try-rds-for-sqlserver-sql-server-audit/

Discussion