--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
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 反安裝
1.cmd命令提示字元
2.指令:wmic product where "name like '%%SQL Server 2017%%'"
3.列出清單
4.指令:msiexec /x{IdentifyingNumber}
5.windows 反安裝
訂閱:
文章 (Atom)