Sql Server - begin tran 使用方式
T-SQL 平常使用都會直接 Update、Insert、Delet 之類動作,但是在很多時候會有不小心輸入錯誤的問題。平常如果再已經上線、正式使用資料庫時候非常建議BEGIN TRIN ,可以先確認完畢資料後再同步交期或是回復交期。
BEGIN TRANSACTION使用方式:
BEGIN TRANSACTION : 開啟交期。輸入BEING TRAN 即可。
COMMIT TRANSACTION : 確認交期。輸入COMMIT 即可。
ROLLBACK TRANSACTION : 回復交期。輸入ROLLBACK 即可。
123456BEGIN TRAN/*--------執行動作------------*/--- ROLLBACK OR COMMIT 二選一COMMIT -- ROLLBACK
實際執行動作。
先用 SELECT 查看、Where 要更新的欄位
BEING TRAN 包覆 Insert 、Update 、 DELETE等
執行後,從SELECT 結果確認才執行 COMMIT 或是 ROLLBACK
範例創建Table123456789101112 ...
Sql Server - try...catch 使用方式
近期沒什麼時間撰寫 line notify 章節,先混混幾章來撐過這幾周。
Try Catch平常很寫程式不時會需要查看 Error 錯誤訊息,若在 SQL 上面也比較少人使用try catch。
一、使用方式12345678910begin try/*------- 執行的SQL --------*/end trybegin catch /*------- 例外處理的SQL --------*/end catch
二、範例12345678910111213begin try select 1/0end trybegin catch select ERROR_NUMBER() AS Error_Number, ERROR_SEVERITY() AS Error_Severity, ERROR_STATE() AS Error_State, ERROR_PROCEDURE() AS Error_Procedure, ERROR_LINE() as Error_Line, ERROR_ ...
Sql Server - 無法連線到 WMI 提供者
前言近期處理SQL需要開放TCP,結過遇到打開 sql configuration manager 是完全打不開的狀態,讓我非常的錯愕。
錯誤訊息:無法連線到 WMI 提供者。您沒有權限,或無法連上伺服器。請注意,您只能使用SQL Server組態管理員來管理SQL Server 2005 (含)以後版本的伺服器。命名空間無效[0x8004100e]
遇到問題可能是有兩個版本造成打開組態管理員造成的錯誤,目前微軟解釋處理方式到目前還是豈不了作用,因此使用幾個步驟來排除這問題。
一、 找到 SQL Server 資料夾目標位置 : C:\Program Files (x86)\Microsoft SQL Server\解決方式會是如果你是使用最新的SSMS目前版本 15.0.18384.0請選擇 150資料夾並移動至C:\Program Files (x86)\Microsoft SQL Server\150\Shared\sqlmgmproviderxpsp2up.mof。
二、 Terminal 指令1mofcomp "C:\Program Files (x86)\Mi ...
Sql Server - 還原資料庫發生錯誤 "無法獲得獨佔存取權,因為資料庫正在使用中"
Sql Server 資料庫使用上,逃不了需要還原資料庫這個動作,時常遇到很多人回答怎樣解決 “無法獲得獨佔存取權,因為資料庫正在使用中”的問題。這邊會說明我常用的幾的動作 (P.S. 本章節有重新改寫,若有其他疑問歡迎到下方發問)。
“無法獲得獨佔存取權,因為資料庫正在使用中”期初通常遇到可能是這個DB有人在使用或是自己有下語法造成,依據解決方式有三種依據評估自行操作。
一、離線工作離線工作部分,是最簡單、也是暴力的處理方式之一。位置於 “[DataBase]” > 工作 > 離線工作(T)。
二、活動監視器SQL Server 有提供 活動監視器功能,操作上只需要點選處理器並找到對應位置關閉即可。
三、指令指令部分有分兩種語法,依據個人喜好做使用。
使用 EXEC使用 Exec 是最快的方式,主要問題則會需要慢慢找站存來源。SELECT 找到幾個關鍵字 。 當中hostname必須是空(沒有人暫存),status需要看是否是runnable 決定是否要把它殺掉。殺掉參考spid 編號,使用下方使用方式。
123456789USE master GOEXEC sp_wh ...
Sql Server - 壓縮交易檔案
前言資料庫交期檔案時常會遇到檔案很大問題,下方指令會偏向於特定情境處理,若是客戶需要小心處離 ,通常動作會是暫停、離線方式,再進行壓縮。
查詢指令下方指令是要確定是 SIMPLE 才建議執行下方語法。
12345SELECT name as [database_name], recovery_model_desc as [model], log_reuse_wait_desc as [log_reuse] FROM sys.databases
壓縮指令1234567891011ALTER DATABASE [資料庫名稱]SET RECOVERY SIMPLE;GO--壓縮記錄檔為 20 MBDBCC SHRINKFILE ([資料庫LOG名稱], 20);GOALTER DATABASE [資料庫名稱]SET RECOVERY FULL;GO
Sql Server - 排除單一使用者
前言資料庫當中,覆蓋檔案時常遇到變成單一使用者,因此可以使用下方語法。
一、更改成所有使用者123ALTER DATABASE [資料庫名稱]SET MULTI_USER;GO
二、更改成唯獨123ALTER DATABASE [資料庫名稱]SET READ_ONLY;GO
三、更改成單一使用者模式1234ALTER DATABASE [資料庫名稱]SET SINGLE_USERWITH ROLLBACK IMMEDIATE;GO
Sql Server - 恢復[正在還原]資料庫
前言近期遇到DB出現所謂正在還原中文字,有出現這狀況可能DB處理、還原中失敗造成這個問題提供幾個方式給大家參考。
解決指令1234-- 切換資料庫的狀態為:ONLINE。RESTORE DATABASE [資料庫名稱]WITH RECOVERYGO
查詢指令123456SELECT df.file_id, df.name as logincal_file_name, df.state, df.state_descFROM [資料庫名稱].sys.database_files df
補充 : restore 與 recovery 的區別(取自於網上濃縮)restore : (還原)與備份檔案相對,從備份讀出恢復備份的樹續recovery : (恢復)把restore回來的資料經過處理變成正常數據如果restore 沒有加入recover的話,資料庫是打不開的,主要原因是各文件都不同步。
Sql Server - 亂碼問題 - 字串叢集
SQL Server 亂碼現象問題近期在安裝過程遇到 Linux 環境有亂碼現象,查詢的時候會出現 “????” 無法輸出文字,查看下預設定序為SQL_Latin1_General_CP1_CI_AS,解決方案可以使用下方語法。
使用方式123ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATEALTER DATABASE [DatabaseName] COLLATE Chinese_Taiwan_Stroke_CI_ASALTER DATABASE [DatabaseName] SET MULTI_USER WITH ROLLBACK IMMEDIATE
Sql Server - 介紹SQL、安裝設定環境
SQL (Structured Query Language)是一種特定目的程式語言,用 於管理關聯式資料庫管理系統( RDBMS ),或在關係流資料管理系統 RDSMS )中進行流處理。 SQL 基於關係代數和元組關係演算,包括一個資料定義語言和資料操縱語言。 SQL 的範圍包括 資料插入、查詢、更新和刪除,資料庫模式建立和修改,以及資料存取控制。儘管 SQL 經常被描 述為,而且很大程度上是一種聲明式編程( 4GL ),但是其也含有程序式編程的元素。 ISO( 國際標準化組織 對 SQL 制訂有標準規格,而這樣做為基準的 SQL 即被稱為 標準 SQL 早期 各家 RDBMS 無法統一 SQL 敘述,因此因 ISO 制訂了標準敘述,使得各家 RDBMS 都逐步支援標準 SQL 的基本語法。
SQL 敘述與其分類 SQLSQL 是以數個關鍵字 ( Keyword),再與資料表名稱為欄位名稱組成一段完成的語句 (SQL 敘 述 SQL 敘述中的關鍵字,是根據其意義或使用方式所決定的特定英文單字,其中包含了「查 詢資料表內容」或 「參考這個資料表」等意思的多個單字。
一、 DDL ( ...
Sql Server - 合併欄位( FOR XML PATH )
SQL Server 合併欄位近期需要列出詳細欄位,例如: 這個角色他目前有使用哪種類型,依據類型展開詳細類型資訊等。公司上遇到很多欄位分同類型不同人,決定要試看看合併欄位效果。
必備工具
SQL-Server :https://www.microsoft.com/zh-tw/sql-server/sql-server-downloads
SSMS(SQL Server Microsoft Studio )https://docs.microsoft.com/zh-tw/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
技術文件 : https://test-75.gitbook.io/basic-sql/sql-huan-jing-she-ding
(自行選擇) - 產生範例結構1234567891011SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[Statistics]( [name] [nvar ...