2016-08-03 14 views
-2

私にはテーブルEmployeeがあります。以下はテーブルデザインです。SQL Serverを使用して複数の行データを1つずつフェッチする方法は?

Employeeテーブル:

+-----------+-------------+---------------+ 
|EmployeeID | EmployeeName|EmployeeContact| 
+-----------+-------------+---------------+ 
|101  | test1  | 9999999999 | 
|102  | test2  | 9999999999 | 
|103  | test3  | 9999999999 | 
+-----------+-------------+---------------+ 

私はEmployeeIDに基づいEmployeeIDと更新EmployeeNameに基づいてループをしたいと思います。

どうすればよいですか?この仕事を解決するのを手伝ってください。

+2

を説明してください。おそらくより良い解決策があります – Tanner

+0

@Tannerがもっと説明してくれたように。 – Sami

+0

期待される結果を表示してください – TheGameiswar

答えて

3

はないループを実行してください - セットベースののアプローチを使用します。

UPDATE dbo.Employee 
SET EmployeeName = ....... 

あなたは(あなたの質問は、この時点で非常に不明瞭である)更新が起こることになっているかを定義して策定する必要があります。

UPDATEにすべての行を更新しないようにするには、WHERE句を追加する必要があります。また、ほかのテーブルにも参加する必要があります。

UPDATEコマンドin the official MSDN documentation on itについてのすべてを読んでください。また、このようなことを行う方法の例がたくさんあります。

0

これはあなたを助ける:あなたは一度、この1行をしたいとどのように従業員名を更新する予定なぜ

DECLARE @curEmployee CURSOR; 
DECLARE @iEmpID BigINT 
DECLARE @vEmployeeName Varchar(50), @EmployeeContact Varchar(50) 

BEGIN 
    SET @curEmployee = CURSOR LOCAL READ_ONLY FAST_FORWARD FOR 
    select EmployeeID,EmployeeName, EmployeeContact from dbo.Employee 

    OPEN @curEmployee 
    FETCH NEXT FROM @curEmployee 
    INTO @iEmpID, @vEmployeeName, @EmployeeContact 

    WHILE @@FETCH_STATUS = 0 
    BEGIN 
    PRINT Cast (@iEmpID as Varchar(10)) + ' - ' + @vEmployeeName + ' - ' + @EmployeeContact 

    -- Here Write the code based on @iEmpID 

     FETCH NEXT FROM @curEmployee 
     INTO @iEmpID, @vEmployeeName, @EmployeeContact 
    END 

    CLOSE @curEmployee 
    DEALLOCATE @curEmployee 
END