2016/03/22

雑多な1行SQLメモ ‐ SQL server - 単語登録用

単語登録して呼び出しているSQLバックアップ

‐SQL server編

-- 日付の藩士指定
SELECT * FROM dual where [date] >= convert(datetime,'01/01/2015',101);
--- NULL と Blankを除く
WHERE COALESCE ([column_name], '') <> ''
-- 日付データから時間情報をカット、Oracleの Trunc()の代替 -- SQLSERVER 2008 以上
cast(<DATE> as DATE)
-- 日付データから時間情報をカット、Oracleの Trunc()の代替 -- SQLSERVER 2008 未満
dateadd(dd, datediff(dd,0, <DATE>), 0)
-- 日付データから時間情報をカット、Oracleの Trunc()の代替 -- SQLSERVER 2008 以上
WHERE (@FROM IS NULL or cast(<DATE> as DATE) >= @FROM)
AND (@TO IS NULL or cast(<DATE> as DATE) <= @TO)
-- 日付データから時間情報をカット、Oracleの Trunc()の代替 -- SQLSERVER 2008 未満
WHERE (@FROM IS NULL or dateadd(dd, datediff(dd,0, <DATE>), 0) >= @FROM)
AND (@TO IS NULL or dateadd(dd, datediff(dd,0, <DATE>), 0) <= @TO)
-- ダミーテーブル Oracle のDualの代替 - FROM句を付けないだけ!
select cast(getdate() as DATE)
-- Transaction log
select * from ::fn_dblog(null,null)
‐‐ シングルユーザーモード変更
ALTER DATABASE foo SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
-- DBのリネーム
EXEC sp_renamedb 'oldname', 'newname';
-- 改行削除
REPLACE(REPLACE(FirstName, CHAR(13), ''), CHAR(10), '')
-- Rollback 出来るようにSQLを流す
BEGIN TRANSACTION
DELETE FROM <table> WHERE ....
-- Commit する
COMMIT TRANSACTION
ーー Rollback する
ROLLBACK TRANSACTION



0 件のコメント:

コメントを投稿