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 ...