你邏輯流程有問題 ,下面是你的邏輯流程,
成都創(chuàng)新互聯(lián)專注于企業(yè)網絡營銷推廣、網站重做改版、恭城網站定制設計、自適應品牌網站建設、H5技術、電子商務商城網站建設、集團公司官網建設、成都外貿網站制作、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為恭城等各大城市提供網站開發(fā)制作服務。
讀取下一條→加值→[判斷是否結尾→讀取下一條→加值](循環(huán))
而@@FETCH_STATUS返回3種狀態(tài),
0 FETCH 語句成功。
-1 FETCH 語句失敗或此行不在結果集中。
-2 被提取的行不存在。
這樣在游標移動到最后一行的時候,進行while判斷@@FETCH_STATUS為0 ,進行一次加值,然后又直接進入while判斷 這時候你還沒有移動游標,@@FETCH_STATUS還是為0,又進行了一次加值,然后移動游標,進行判斷@@FETCH_STATUS不為0,退出循環(huán)
所以應該修改邏輯為
讀取下一條→[判斷是否結尾→加值→讀取下一條](循環(huán))
SQL語句調整如下
===========================================
OPEN Employee_Cursor
FETCH NEXT FROM Employee_Cursor into @id,@name
WHILE @@FETCH_STATUS = 0
BEGIN
set @finalname = @finalname + @name
FETCH NEXT FROM Employee_Cursor into @id,@name
END
CLOSE Employee_Cursor
==================================
以上語句實測試通過
先移動游標,然后就開始判斷,為真進行加值 然后移動游標,這樣就沒問題了,
sqlserver2005以上的版本可用
select 單號,申請人,
stuff((select '/'+文件名 from tbB where a.單號=單號 for xml path('')),1,1,'')文件名
from tbA as a
select?id,row_number()?over?(order?by?id)?rank?from?table
sqlserver2005以后版本的話可以這樣
sqlserver語句添加列步驟如下:
1、首先我們準備一個數(shù)據(jù)表,接下來將會在這個表中添加列。
2、然后我們通過alter? table語句來給表添加一個列。
3、回到數(shù)據(jù)表一會我們看到列已經被添加進數(shù)據(jù)表了。
4、接下來我們在添加列的時候同時添加上默認值,這個時候運用default關鍵字。
5、然后回到數(shù)據(jù)表,我們就看到默認值有內容了。
6、另外在數(shù)據(jù)表中經常使用的是uniqueidentifier類型,這種字段設置默認值。
7、回到數(shù)據(jù)表中我們可以看到默認值已經添加上了。