SQL儲存過程實現,關注與取消關注功能

2021-09-02 07:51:30 字數 1534 閱讀 4863

create proc attention

@id int,--使用者id

@uid varchar(2000),--需要操作的使用者id

@type int--操作型別   1:取消關注    2:關注

as begin 

declare  @data varchar(2000),--資料來源

@split varchar(2),--分割符

@val varchar(2000),--儲存最終需要修改的字串

@t varchar(2000),--存放已經新增過的資料

@txt varchar(2000),--儲存乙個臨時字串

@num varchar(2)--**控制,第一次執行不需要擷取頓號右邊的值,不然會報錯

set @split='、'--分割符

set @num='0'

select @data=name from studentinfoes where studentid=@id--資料來源   如1、2、3、4

if @type=1--取消關注

begin

while(charindex(@split,@data)<>0)

begin 

set @t=concat(@val,substring(@data,1,charindex(@split,@data)-1))--取字串

set @txt=charindex('、',@t)

if @num!='0' and @txt!='0' --判斷是否為第一次載入,判斷頓號右邊是否有資料。否則會報錯

begin

set @txt=reverse(substring(reverse(@t),1,charindex('、',reverse(@t)) - 1)) --取特殊符號右邊的字串

endset @num='1'

if (@t!=@uid and @txt is null) or (@t!=@uid and @txt!=@uid)

begin

set @val=concat(@t,'、')--組裝最終資料

endset @data = stuff(@data,1,charindex(@split,@data),'') --將取出來的字串刪除掉

end 

if @data!=@uid

begin

set @val=concat(@val,@data)--新增最後乙個字串

endset @txt=right(@val,1)--取最後一位字串

if @txt='、'--如果最後乙個字元為特殊符號

begin

set    @val=left(@val,len(@val)-1)--那麼刪除最後乙個特殊符號

endend

if @type=2--關注

begin

set @val=concat(@data,'、'+@uid)--組裝關注資料

endupdate studentinfoes set name=@val where studentid=@id--進行update修改

end 

sql儲存過程與webMethods

今天嘗試著做之前用webmethods沒做出來的sql儲存過程的使用,因為本來對於資料庫的儲存過程也是一知半解,所以先在上學習了一下。先在sql中寫好有輸入輸出的儲存過程,典型一點好做實驗。在webmethods中需要先做好的準備有 安裝好sql與webmehtods,在is伺服器上配置好sql的j...

Sql分頁儲存過程以及實現

建立乙個類檔案,內容如下 using system using datahelper using system.data using system.data.sqlclient using system.web using system.configuration namespace classba...

儲存過程與SQL語句對比

優勢 1 提高效能 sql語句在建立過程時進行分析和編譯。儲存過程是預編譯的,在首次執行乙個儲存過程時,查詢優化器對其進行分析 優化,並給出最終被存在系統表中的儲存計畫,這樣,在執行過程時便可節省此開銷。2 降低網路開銷 儲存過程呼叫時只需用提供儲存過程名和必要的引數資訊,從而可降低網路的流量。3 ...