2025年12月20日 星期六

T-SQL 查看資料庫檔案容量

-- 查看資料庫檔案容量
SELECT 
    DB_NAME(database_id) AS '資料庫名稱',
	physical_name N'實體檔案',
    name AS 'Log檔名稱'	,
	type_desc N'檔案類型',
	state_desc N'檔案狀態',
    CAST(size * 8.0 / 1024 AS DECIMAL(10,2)) AS 'Log大小(MB)' 
FROM sys.master_files
--WHERE 
--type_desc = 'LOG' -- 只看LOG
--AND database_id > 4  -- 排除系統資料庫
--AND DB_NAME(database_id) NOT IN ('ReportServer', 'ReportServerTempDB')
ORDER BY size DESC;
參考來源
sys.master_files (Transact-SQL)

T-SQL 查指定資料庫Table欄位資訊

--查指定資料庫Table欄位資訊
--先登入選擇資料庫
SELECT  a.Table_schema +'.'+a.Table_name  as 表格名稱 
,b.COLUMN_NAME as 欄位名稱 
 ,b.DATA_TYPE as 資料型別 
,isnull(b.CHARACTER_MAXIMUM_LENGTH,'')  as 長度 
,isnull(b.COLUMN_DEFAULT,'') as 預設值 
,b.IS_NULLABLE as 允許空值 
,( SELECT value 
FROM fn_listextendedproperty (NULL, 'schema', a.Table_schema, 'table', a.TABLE_NAME, 'column', default) 
WHERE name='MS_Description'  
and objtype='COLUMN' 
and objname Collate Chinese_Taiwan_Stroke_CI_AS = b.COLUMN_NAME 
) as 欄位備註 
FROM 
INFORMATION_SCHEMA.TABLES a 
LEFT JOIN INFORMATION_SCHEMA.COLUMNS b  
ON a.TABLE_NAME = b.TABLE_NAME 
WHERE TABLE_TYPE='BASE TABLE'
參考來源
系統資訊架構檢視 (Transact-SQL)

T-SQL 查指定資料庫Table筆數

--查指定資料庫Table筆數
--先登入選擇資料庫
SELECT   a.name as 表格名稱 , MAX(b.rows) as 目前筆數
 FROM  sysobjects a,  sysindexes b 
 WHERE  a.xtype = 'U'  AND  b.id = OBJECT_ID(a.name) 
 GROUP BY  a.name ORDER BY 表格名稱
參考來源
sys.sysobjects (Transact-SQL)
sys.sysindexes (Transact-SQL)

T-SQL 查指定資料庫所有Table

--查指定資料庫所有Table
--先登入選擇資料庫
select *
from sysobjects
where xtype = 'U' or xtype = 'v'
order by xtype
--AF = 聚合函數 (CLR)
--C = CHECK 條件約束
--D = 預設或 DEFAULT 條件約束
--F = FOREIGN KEY 條件約束
--L = 記錄
--FN = 純量函式
--FS = 元件 (CLR) 純量函式
--FT = 元件 (CLR) 資料表值函式
--IF = 內嵌數據表函式
--IT = 內部數據表
--P = 預存程式
--PC = 元件 (CLR) 預存程式
--PK = PRIMARY KEY 條件約束 (類型為 K)
--RF = 複寫篩選預存程式
--S = 系統資料表
--SN = 同義字
--SO = 時序
--SQ = 服務佇列
--TA = 元件 (CLR) DML 觸發程式
--TF = 資料表函式
--TR = SQL DML 觸發程式
--TT = 資料表類型
--U = 用戶數據表
--UQ = UNIQUE 條件約束 (類型為 K)
--V = 檢視
--X = 擴充預存程式
參考來源
sys.sysobjects (Transact-SQL)

2025年12月4日 星期四

筆記 使用Babel開發測試React

僅測試時使用
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>使用babel測試開發React</title>
    <!-- React 和 ReactDOM(開發版本) -->
    <script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script>
    <script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
    <!-- Babel Standalone:讓瀏覽器即時編譯 JSX -->
    <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
    <!-- axios -->
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    <!-- bootstrap -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
</head>
<body>
    <div id="root"></div>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI"
        crossorigin="anonymous"></script>
    <script type="text/babel">
        const App = () => {
            const { useState } = React;
            const [count, setCount] = useState(0);
            const handleClick = () => {
                setCount(count + 1);
            }
            return (
                <>
                    <h5>{count}</h5>
                    <button className="btn btn-primary" onClick={handleClick}>+1</button>
                </>
            )
        }
        ReactDOM.createRoot(document.querySelector('#root')).render(<App />);
    </script>
</body>
</html>