나는 다음 코드를 사용하여 테이블 데이터 유형을 사용하여 데이터베이스에 테이블을 삽입하고 있습니다 :데이터베이스에 테이블을 삽입하는 중 오류가 발생 했습니까?
CREATE TYPE BackUpDoctorLocationAreaRoom AS TABLE (
[RoomId] bigint,
[AreaId] bigint,
[LocationId] bigint
);
Alter proc proc_tblBackUpDoctorInsert
(
@Id uniqueidentifier='',
@BackUpDoctorId uniqueidentifier='1323e1f4-7a93-4b45-9a9b-3840c32fd6d8',
@StartDate datetime='11/08/2012',
@EndDate datetime='11/09/2012',
@StartTime datetime='22:22:22',
@EndTime datetime='01:11:11',
@CreatedBy uniqueidentifier='acf7961c-4111-49ad-a66a-ce7f9ce131bd',
@ModifiedBy uniqueidentifier='acf7961c-4111-49ad-a66a-ce7f9ce131bd',
@createdDate datetime='11/6/12 3:09:58 AM',
@ModifiedDate datetime='11/6/12 3:09:58 AM',
@tblBackUpDoctorsForRooms BackUpDoctorLocationAreaRoom READONLY
)
as
set xact_abort on
declare @newId uniqueidentifier;
set @newId = newid();
insert into tblBackUpDoctor (Id,BackUpDoctorId,StartDate,EndDate,StartTime,EndTime,CreatedBy,ModifiedBy,
createdDate,ModifiedDate,IsActive,isdeleted) values
(@newId,
@BackUpDoctorId,
@StartDate,
@EndDate,
@StartTime,
@EndTime,
@CreatedBy,
@ModifiedBy,
@createdDate,
@ModifiedDate,
1,0)
declare @IdFortblBackUpDoctorsForRooms uniqueidentifier;
set @IdFortblBackUpDoctorsForRooms = newid();
delete from tblBackUpDoctorsForRooms where [email protected] and Roomid in (Select roomid from @tblBackUpDoctorsForRooms)
delete from tblbackupdoctor where [email protected]
insert into tblBackUpDoctorsForRooms (BackUpRecordId,Roomid,Araeid,locationid)
Select @newId,roomid,areaid,locationid from @tblBackUpDoctorsForRooms
select @newId
이 내가 그 테이블을 사용하고있는 특검팀입니다.
public string InsertBackUpDoctor(ClsBackUpDoctorProp objProp, DataTable dtLocAreaRoom)
{
String ConnectionString = CCMMUtility.GetCacheForWholeApplication();
String backUpRecordId = "";
SqlParameter[] param = new SqlParameter[12];
param[0] = new SqlParameter("@Id", objProp.Id);
param[1] = new SqlParameter("@BackUpDoctorId", objProp.BackUpDoctorId);
param[2] = new SqlParameter("@StartDate", objProp.StartDate);
param[3] = new SqlParameter("@EndDate", objProp.EndDate);
param[4] = new SqlParameter("@StartTime", objProp.StartTime);
param[5] = new SqlParameter("@EndTime", objProp.EndTime);
param[6] = new SqlParameter("@CreatedBy", objProp.CreatedBy);
param[7] = new SqlParameter("@ModifiedBy", objProp.ModifiedBy);
param[8] = new SqlParameter("@createdDate", CCMMUtility.GetCurrentDateTimeByTimeZone("US Mountain Standard Time"));
param[9] = new SqlParameter("@ModifiedDate", CCMMUtility.GetCurrentDateTimeByTimeZone("US Mountain Standard Time"));
param[10] = new SqlParameter("@CurrentDate", objProp.CurrentDate);
param[11] = new SqlParameter("@tblBackUpDoctorsForRooms ", dtLocAreaRoom);
backUpRecordId = SqlHelper.ExecuteScalar(ConnectionString, "proc_tblbackupdoctorInsertBackUpDoctors", param).ToString();
return backUpRecordId;
}
여기에 내가 삽입을 시도 할 때 오는 오류는 다음과 같습니다 :
내 클래스 파일의 코드는
들어오는 테이블 형식 데이터 스트림 (TDS) 원격 프로 시저 호출 (RPC) 프로토콜 스트림이 올바르지 않습니다. 테이블 값 매개 변수 12 ("@tblBackUpDoctorsForRooms"), 행 0, 열 0 : 데이터 형식 0xF3 (사용자 정의 테이블 형식)에는 길이가 0이 아닌 데이터베이스 이름이 지정되어 있습니다. 테이블 값 매개 변수에는 데이터베이스 이름이 허용되지 않으며 스키마 이름과 유형 이름 만 유효합니다.
같은 다만
param[11] = new SqlParameter("@tblBackUpDoctorsForRooms ", dtLocAreaRoom);
아니라 뭔가 : 나는 당신이 당신의 사용자 정의 매개 변수를 전달하는 방법을 변경해야 할 것 생각
@ViralShah을 추가 ... –