데이터 테이블에없는 사용자 입력에서 임시 테이블로 데이터를 보내는 저장 프로 시저를 사용하여 대량 업데이트를 수행 할 수 있습니까?사용자 입력으로 저장 프로 시저 대량 업데이트
내가 foreach 루프를 가지고 있다면 체크 박스 목록과 텍스트 상자의 값과 같은 사용자 입력을 받는다. 내가 알고 싶은 것은 스토어드 프로 시저에서 개별 값을 매개 변수화하는 방법 또는 코드에서 수행 할 수있는 경우이다. 내가 지원하지 않는 SQL 버전을 사용하고 있기 때문에 테이블 반환 매개 변수를 사용할 수 없습니다.
conn.Open();
foreach(ListItem item in CheckBoxList1.Items)
{
if(item.Selected)
{
//handling parameters in loop.
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "Update_Account_Table";
cmd.Parameters["@SeqNum"].Value = amount.Text;
cmd.Parameters["@SeqDate"].Value = DateTime.ParseExact(datepicker.Text, "mmddyyyy", CultureInfo.InvariantCulture);
cmd.Parameters["@Account_ID"].CheckBoxList1.SelectedValue;
cmd.ExecuteNonQuery();
}
conn.Close();
}
저장 프로 시저
CREATE TABLE TempTable
(
SeqNum int,
SeqDate datetime,
Account_ID varchar(2)
);
CREATE PROCEDURE [ACCOUNTTABLE_UPDATE]
AS
SET NOCOUNT ON
BEGIN
UPDATE AccountTable
SET SeqNum = t.SeqNum, SeqDate = t.SeqDate
FROM AccountTable AT
INNER JOIN TempTable t ON AT.AccountID = t.AccountID
END
를 완료 한 후
은 임시 테이블을 생성하고 파괴 것처럼이 있어야합니다. http://www.sqlservercentral.com/Forums/Topic1017781-391-1.aspx를 읽을 수 있습니다. – mhn