データベース関連

SQL Server関連

SQL一般

SQL関連メモ(Oracle)

関連Web

selectしながらロック

selectの条件に正規表現

日付型を文字列に変換

現在日付

文字列の中に改行コードがあるかの条件

列名 like '%'+char(10)+'%'

文字列の中に数字以外の文字があるかを判定

ストアドプロシージャでファイル出力する

先頭のxx件だけ取得したいとき

外部結合とLEFT JOINは微妙に動作が違う!?

DB情報取得系

情報検索操作系

DB定義操作系

システムストアドプロシージャ

あるDBのバックアップからの別のDBへのリストア

RESTORE DATABASE <TO_DB>
FROM DISK='FROM_DBバックアップファイル' WITH REPLACE,
MOVE 'FROM_DBデータ論理名' TO 'TO_DBデータ物理ファイルフルパス.mdf',
MOVE 'FROM_DBログ論理名' TO 'TO_DBログの物理ファイルフルパス.ldf'

みたいな感じ。リストア先のDBはREPLACEをつけておけばあってもなくてもOK

  -- 読み込みのDISKのファイル名
  SELECT  @bkfname = 'D:\backup7\MySampleTest.DAT'
  --データベースの名前
  SELECT  @dbname2  = 'MySampleCopy'

  RESTORE  DATABASE  @dbname2   --復元したDBの名前
        FROM  DISK = @bkfname   --保存先ファイル名
        WITH
             REPLACE             --同じ名前のDBがあれば、既存を削除
           , MOVE 'MySampleTest_Data' TO 'd:\test\MySampleCopy.mdf'
           , MOVE 'MySampleTest_Log'  TO 'd:\test\MySampleCopy.ldf'

データベースファイルを圧縮する

DBCC SHRINKDATABASE
   ( database_name [ , target_percent ]
       [ , { NOTRUNCATE | TRUNCATEONLY } ]
   )

肥大したLogファイルを縮小する

BACKUP LOG [DatabaseName] WITH NO_LOG
DBCC SHRINKDATABASE ([DatabaseName], TRUNCATEONLY)
DBCC SHRINKFILE ([DatabaseName]_log, 2, TRUNCATEONLY)

コマンドラインからのSQL Serverへの接続

sqlcmd -S サーバー名 -U ログインユーザー名 -P パスワード

データファイル、ログファイルからデータベースを新規作成

create database データベース名
on primary
(
filename = 'データファイルのフルパス'
)
log on
(
filename = 'ログファイルのフルパス'
)
for attach

データファイルが複数ある時は

on primary
(
filename = 'データファイルのフルパス'
)
, 
(
filename = 'データファイルのフルパス'
)

となり、必ずひとつはprimaryを指定する。

デタッチ→アタッチしたDBのユーザをログインと結びつける

ログインの作成

create login
db_user with password = 'db_user',
default_database = デフォルトのデータベース,
check_policy = OFF

ユーザーを作成

ロールにユーザーを追加


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-05-07 (土) 13:25:35