2021年9月29日 星期三

[GIT]Azue DevOps SSH公用金鑰:Windows上產生SSH keygen

1. 先安裝Git(https://git-scm.com/downloads)

2. 開啟提示命令字元 或 Windows PoweShell

3. 輸入指令:

>ssh-keygen -t rsa

  3.1 詢問儲存的檔案位置/檔案名稱(預設:C:\User\[username]/.ssh/id_rsa)

  3.2 輸入passphrase(可空白)

4.到產生的位置 開啟id_rsa.pub

5.複製內容至Azue DevOps SSH公用金鑰










2020年2月21日 星期五

MSSQL 還原

--MSSQL 還原
restore DATABASE SBODemoCN  -- 指定 欲還原的資料庫名稱db 
FROM disk='C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup\SAPCN20200221.bak'  -- 設定 資料庫備份檔 .bak 路徑
WITH
move 'SBODemoCN' TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup\SAPCN20200221.mdf',      -- 設定成 MSSQL資料庫存放路徑 (mdf)
move 'SBODemoCN_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup\SAPCN20200221_log.ldf'  -- 設定Log 存放路徑
,NoRecovery
,REPLACE
GO

--若執行錯誤顯示:無法獲得獨佔存取權,因為資料庫正在使用中。
--先查詢出有哪些連線
USE master;
GO
exec sp_who

--看準哪些spid的dbname欄位在使用我們要還原的DB
--就可以解開這段,直接下 kill [spid欄位]指令殺掉所有使用還原DB的連線就完成了
kill 63;

--若DB顯示正在還原中  恢復狀態
-- 切換資料庫的狀態為:ONLINE。 RESTORE DATABASE [資料庫名稱] WITH RECOVERY GO

2020年2月15日 星期六

[MSSQL]批次刪除table資料

資料來源:https://blog.miniasp.com/post/2007/11/16/SQL-Tips-Delete-All-Data-in-whole-Database

select
    distinct 表格名稱
    into #LISTTABLES
from
    (
    SELECT
        Top 100 PERCENT
        a.TABLE_NAME as 表格名稱
    FROM
        INFORMATION_SCHEMA.TABLES  a
        LEFT JOIN INFORMATION_SCHEMA.COLUMNS b ON ( a.TABLE_NAME=b.TABLE_NAME )
    WHERE
        a.TABLE_TYPE='BASE TABLE'
        and a.TABLE_NAME not in ('sysdiagrams','spt_fallback_db','MSreplication_options','spt_fallback_dev','spt_fallback_usg','spt_monitor')
    ORDER BY
        a.TABLE_NAME, ordinal_position) c;

declare
    @tablename nvarchar(max)

declare icur cursor static for select * from #LISTTABLES
 
OPEN icur

fetch next from icur into @tablename
while(@@FETCH_STATUS=0)
BEGIN


    -- 使用 TRUNCATE 最快,且會將表格中的自動編號欄位歸零
    -- 但若表格有被參考 Foreign Key 的話,會無法使用 TRUNCATE 指令
    exec ('TRUNCATE TABLE ' + @tablename); 

    -- 如果 TRUNCATE 不成功,還可以用 DELETE 刪除所有資料
    exec ('delete from ' + @tablename + ' where 1=1');

    -- 使用 DELETE 不會將自動編號的欄位歸零,使用 DBCC CHECKIDENT 指令歸零
    exec ('DBCC CHECKIDENT(''' + @tablename + ''', RESEED, 0)');

    FETCH NEXT FROM icur INTO @tablename
END

close icur
deallocate icur

drop table #LISTTABLES

2020年2月7日 星期五

wmic指令移除程式

移除程式
1.cmd命令提示字元
2.指令:wmic product where "name like '%%SQL Server 2017%%'"
3.列出清單
4.指令:msiexec  /x{IdentifyingNumber}
5.windows 反安裝

2019年11月28日 星期四

shell script 判斷grep字串是否有值

cat testfile.txt | grep -q 'JAMES'
if [ $? -ne 0 ]       #$?=0表示有找到值,1表示未找到, 2表示命令執行錯誤. ne=not eq
then
      echo "not find JAMES"
else
      echo "find JAMES"
fi

2019年11月5日 星期二

[PostgreSQL]TABLE LOCK查詢/解除

SELECT t.schemaname,
    t.relname,
    l.locktype,
    l.page,
    l.virtualtransaction,
    l.pid,
    l.mode,
    l.granted
   FROM pg_locks l
   JOIN pg_stat_all_tables t ON l.relation = t.relid
  WHERE t.schemaname <> 'pg_toast'::name AND t.schemaname <> 'pg_catalog'::name
  ORDER BY t.schemaname, t.relname;


  SELECT pg_cancel_backend('PID');

2019年7月23日 星期二

[PostgreSQL]取欄位型態名稱

select column_name, data_type, character_maximum_length from information_schema.columns
where
 table_schema='public'
 and table_name = 'table_name'