今天遇到這樣乙個更新語句:
在使用者表sys_emplyee中有一欄位
statisticsreports,型別為:varchar(200),這個字段用來記錄此使用者可以檢視的報表的id, 其中id是用單引號引起來的,多個id之間使用逗號分開.
例如:select
empname,statisticsreports
from
sys_emplyee
where
empaccount='
newsight/zhangzs8896
'--返回:
empname statisticsreports
組長 '1','2','3'
現在想取消該使用者對某一報表的訪問許可權,使用以下sql語句
方法一:
declare
@pvarchar(20
)set@p
='''
2'''
update
sys_emplyee
setstatisticsreports
=stuff
(replace('
,'+statisticsreports,',
'+@p,
''),1,
1,'')
where
empaccount='
newsight/zhangzs8896
'更新後返回記錄:
empname statisticsreports
組長 '1','3'
方法二:
declare
@pvarchar(20
)set@p
='''
2'''
update
sys_emplyee
setstatisticsreports
=case
when
(statisticsreports
like@p+
'%')
then
replace
(statisticsreports,@p+
',',
'')when
(statisticsreports
like'%
'+@p)
then
replace
(statisticsreports,',
'+@p,
'')else
replace
(statisticsreports,',
'+@p+
',',
',')
endwhere
empaccount='
newsight/zhangzs8896
'
乙個update差點引發的血案
三條語句如下 因為保密原因表名都是處理過的測試表名 update uct user abc t,uct udc t1 set t.user type teacher where t1.id t.user id and t1.user type 1 update uct user abc t,uct ...
乙個特殊的中斷 SVCall
簡述 一種由程式進行觸發的中斷,預設開啟 起源 svc 系統服務呼叫,亦簡稱系統呼叫 多用於在作業系統之上的軟體開發中。svc 用於產生系統函式的呼叫請求。例如,作業系統不讓使用者程式直接訪問硬體,而是通過提供一些系統服務函式,使用者程式使用 svc 發出對系統服務函式的呼叫請求,以這種方法呼叫它們...
乙個比較特殊的字元
位置在鍵盤中數字鍵 1 的左邊,其上檔符號是 使用shift鍵可以換擋為英文輸入法後,單機該鍵即可輸入。由於計算機顯示的原因,反單引號非常容易和單引號 混淆。一 反單引號是西方符號,主要用在linux的bash中。同時在數學軟體mathematica中也有應用。1.在bash中,其用法同 一樣,用 ...