私が業務の中で
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