關于資料庫存盤程序的學習
1、新建存盤程序,某一階段寫完,執行后提示了“命令已成功完成”(在此之前從未把當前存盤程序關閉過),再接著寫完某一階段或是修改,再執行的話,會報資料庫已存在當前命名的存盤程序的錯。如下圖所示:

解決方法是把“CREATE PROCEDURE WD_CommodityName”中的“CREATE”改為“ALTER”。
注意:報錯后不可以直接關閉當前存盤程序,必須是提示“命令已成功完成”才可以關閉當前存盤程序。否則你再打開此存盤程序時,會發現它沒有保存我們在第一次提示“命令已成功完成”后所做的任何更改。
如想避免出現此種錯誤,我們在第一次提示“命令已經成功完成”時,就關閉當前存盤程序,再重新打開即可。
2、存盤程序的命名習慣最好跟視窗名保持一致,以便以后對此進行維護和修改時方便快捷的找到對應的地方(如做登錄頁面ALTER PROCEDURE [dbo].[WD_Login])。
3、宣告變數初始值要注意:字串varchar、char、日期型別datetime等的初始值是'' ;
數值double、decimal ,整形int等初始值是0(如@type char(200)='', @staff_id int=0)。
4、方法命名習慣:事件名(btnLogin_Click)+實作功能(Login)(如驗證登錄IF(@type='btnLogin_Click_Login'))。
5、把某張表的ID作為序列號的陳述句是ROW_NUMBER() over(order by某張表表名.ID列列名) as序列號名。
6、為某張表的某列內容去空格的陳述句是RTRIM(某張表表名.某列列名)。注意:某些欄位不能去空格,否則會造成屬性不符的錯(例如:出生日期、登記時間等)。
7、下圖中的EXISTS指定一個子查詢,檢測“行”的存在。EXISTS用于檢查子查詢是否至少會回傳一行資料,該子查詢實際上并不回傳任何資料,而是回傳值True或False。
8、事務(Transaction)是并發控制的單位,是用戶定義的一個操作序列。這些操作要么都做,要么都不做,是一個不可分割的作業單位。
事務其實很簡單,首先要知道事務的關鍵的東西:
(1)BEGIN TRAN 開始事務
(2)COMMIT TRAN 提交事務
(3)ROLLBACK TRAN 回滾事務

9、@@ERROR 全域變數,用來回傳一些標志碼,比如:commit tran回傳為0,rollback tran回傳 非0。
10、從資料庫中自定義頁面上顯示的內容:
陳述句:RTRIM(case WHEN t_site.stop_no='true' THEN '啟用' ELSE '停用' END) AS stop_no
和陳述句:RTRIM(case WHEN t_site.stop_no='true' THEN 'Blue' ELSE 'Red' END) AS color,
意思是:當t_site.stop_no等于true時,那么值為欄位'啟用'且顏色為藍色,否則值為欄位'停用'且顏色為紅色。
11、倒敘排序陳述句:ORDER BY 所需表表名.ID列列名 DESC
12、查詢新增的ID陳述句:SELECT @@IDENTITY
13、使用in查詢存在一個表且在另一個表中的資料記錄;陳述句:WHERE t_staff.staff_id in (SELECT staff_id FROM t_operators) and t_staff.operator_no=1
14、使用not in查詢存在一個表而不在另一個表中的資料記錄;陳述句:WHERE t_staff.staff_id not in (SELECT staff_id FROM t_operators) and t_staff.operator_no=1
15、在Sql中將 varchar 值 '1,2,3,4,5,6' 轉換成資料型別 int的陳述句:WHERE charindex(','+rtrim(t_modular_operation.modular_detail_id)+',',','+@PermissionGroup+',')>0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/250904.html
標籤:非技術區
