6
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【SQL Server】業務の中でよく使用するクエリ集

Last updated at Posted at 2022-11-22

私が業務の中で
SSMS(SQL Server Management Studio)上でDBの操作をしており、
そこでよく使うクエリをまとめました。

参考になれば。

■バックアップを取る際
SELECT * INTO (バックアップした後のテーブル名)
FROM  (バックアップしたいテーブル名)
■テーブル名があいまいで思い出せない場合、DBから検索する
SELECT
  s.name
  , t.name
FROM sys.tables t
INNER JOIN sys.schemas s
  ON t.schema_id = s.schema_id
where s.name like '(スキーマ名)'
and t.name like '(検索したいテーブル名)'

※ 上記、(検索したいテーブル名)は自分が思い出した一部分のテーブル名の前後を「%」で囲うと自分が思い出した一部分のテーブル名がついたテーブル名が一覧表示される。

■テーブルのカラム名変更・削除時にプロシージャ―で使っているところがないか、検索する
SELECT
  sysobjects.type
  , schemas.name
  , sysobjects.name
  , sysobjects.crdate
FROM
  sys.sql modules
LEFT OUTER JOIN sysobjects
  ON sysobjects.id = sys.sql_modules.object_id
LEFT OUTER JOIN sys.objects
  ON objects.object_id = sys.sql_modules.object_id
LEFT OUTER JOIN sys.schemas
  ON objects.schema_id = schemas.schema_id
WHERE
  sys.sql_modules.definition like '検索したいカラム名'
ORDER BY
  sysobjects.name

※ 上記、(検索したいカラム名)は自分が検索したいカラム名の前後を「%」で囲うと、あいまい検索が可能。

■テーブル・プロシージャーが張られた日時の確認

下記クエリ実行後、create_dateカラム:作成日時、modify_dateカラム:更新日時をそれぞれ確認することができる。

SELECT * FROM SYS.tables
WHERE name like '(テーブル名)'

SELECT * FROM SYS.procedures
WHERE name like '(プロシージャ―名)'
■DB容量確認コマンド
set nocount on

SELECT
  name
  ,(CAST(size as bigint) * 8 /1024) - (FILEPROPERTY(file_name(fileid),'SpaceUsed')*8192.0/power(1024,2)) AS [freespace]
INTO #dbfreespace 
FROM dbo.sysfiles
where name like '%_Data%'

SELECT CONVERT(VARCHAR, CONVERT(NUMERIC(10,3),SUM(freespace))) + ' MByte' AS 空き容量 FROM #dbfreespace 

DROP TABLE #dbfreespace
6
9
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
6
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?