資料來源: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月15日 星期六
2020年2月7日 星期五
wmic指令移除程式
移除程式
1.cmd命令提示字元
2.指令:wmic product where "name like '%%SQL Server 2017%%'"
3.列出清單
4.指令:msiexec /x{IdentifyingNumber}
5.windows 反安裝
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
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');
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'
where
table_schema='public'
and table_name = 'table_name'
2019年5月2日 星期四
[LINUX]LINUX 指令背景執行 nohup
https://www.opencli.com/linux/nohup-background-execute-command
$ nohup your-domain > nohup.log 2>&1 &
$ nohup your-domain > nohup.log 2>&1 &
2019年3月8日 星期五
[MS SQL]SQL Server驗證登入
來源:
https://awei791129.pixnet.net/blog/post/20653040-%5Bms-sql%5D-sql-server%E7%84%A1%E6%B3%95sa%E7%99%BB%E5%85%A5
https://docs.microsoft.com/zh-tw/sql/database-engine/configure-windows/change-server-authentication-mode?view=sql-server-2017
使用sa登入
變更安全性驗證模式
- 在 Transact-SQL 的物件總管中,以滑鼠右鍵按一下伺服器,然後按一下 [屬性]。
- 在 [安全性] 頁面上的 [伺服器驗證] 中,選取新的伺服器驗證模式,然後按一下 [確定]。
- 在 Transact-SQL 對話方塊中,按一下 [確定] 以確認需要重新啟動 [SQL Server]。
- 在物件總管中,以滑鼠右鍵按一下伺服器,然後按一下 [重新啟動]。 如果 [SQL Server] Agent 正在執行,也必須將它重新啟動。
若要啟用 sa 登入
- 在物件總管中,依序展開 [安全性] 和 [登入],並以滑鼠右鍵按一下 [sa],然後按一下 [屬性]。
- 在 [一般] 頁面上,您可能需要為登入建立並確認密碼。
- 在 [狀態] 頁面的 [登入] 區段中按一下 [已啟用],然後按一下 [確定]。
但是,你如果現在重新連線的話, 也是無法用sa登入的,你必須要去重新啟動SQLEXPRESS才行,很多人會在這裡失敗,到網路上發問
控制台\系統管理工具\服務, 找SQL Server (SQLEXPRESS), 將這個服務重新啟動之後就可以使用sa登入了
PS. 在重新啟動SQL Server (SQLEXPRESS)服務時,請確定SSMS(Microsoft SQL Server Management Studio Express)是關閉的
訂閱:
文章 (Atom)