sql server資料庫遍歷並修改

2021-10-01 23:23:07 字數 1291 閱讀 1317

sql server 游標的運用

昨天由於要對資料庫中大片沒有插入的資料進行修復,因此想到了遍歷每條資料和修改遍歷的資料。

由於並沒有有序的字段,不能簡單的用while迴圈,因此,需要用到游標。

下面對sql 語句進行分析。

begin

declare @pid varchar(50)

declare @path varchar(260)

declare @date varchar(50)

declare @rpath varchar(260)//前4行是宣告的變數

declare order_cursor cursor

for(select[patient_id]from [hisreport1].[dbo].[his_report] where report_date between 『2017-01-05』 and 『2017-01-06』)//第

五、六行用於宣告乙個游標,並指明游標作用範圍

open order_cursor//開啟乙個游標

fetch next from order_cursor into @pid //將查到結果的第乙個值賦給變數pid

while @@fetch_status=0//開始進行迴圈,判斷fetch的狀態

begin

select @date=exam_date from [zhilikangdrpacs].[dbo].[dicom_baseinfo] where patient_id=@pid

set @rpath=』\192.168.0.25\imagedata2』+stuff(stuff(@date,7,2,』』),5,0,』-』)+』』+stuff(@date,1,6,』』)+』』+@pid+』』

update [hisreport1].[dbo].[his_report] set image_path=@rpath where patient_id=@pid

fetch next from order_cursor into @pid

end//begin 和and 之間是你想要處理的語句

close order_cursor//關閉游標

deallocate order_cursor//釋放游標

endgo

這裡再說一下stuff函式,stuff(param1,param2,param3,param4);

引數1是要處理的字串,可以是常量也可以是變數

引數2表明要處理欄位的開始位置

引數3表明從要處理欄位的開始位置處理多長位元組

引數4表示修改方法,刪除就寫『』,替換就寫要替換的東西

c 連線sqlserver資料庫並顯示

一 先進入sqlserver2008r2 建立乙個資料庫student 二 在student資料庫下建立資料表student 三 進入vs2013新建乙個專案,建立乙個form窗體,拖乙個button 按鈕 拖乙個datagridview用於顯示資料表 四 雙擊button按鈕 private vo...

solr連線sqlserver資料庫並匯入資料

新建的core資料夾下conf solrconfig.xml中加 config是上級節點 dataimport class org.apache.solr.handler.dataimport.dataimporthandler defaults config data config.xml str...

jdbc連線Sql server資料庫,並查詢資料

string driver com.microsoft.sqlserver.jdbc.sqlserverdriver string url jdbc sqlserver string user sa string password 123456 connection con null prepare...