다음 테이블이있는 상황이 있습니다.값 절에 레코드를 삽입하지 않고 insert 문을 실행하는 방법 절
create table Bulk_Data
(
id int identity(1,1),
UserName varchar(100) not null default 'default value ',
iPartitionID int null
)
또한 삽입 트리거가 Bulk_Data에 있습니다. i가 모든 값에 의존하지 않는 3 열이 같이 상기 테이블
create trigger dbo.Bulk_Data_IU on Bulk_Data
AFTER INSERT
AS Begin
Merge Bulk_Data p1
using Bulk_Data p2 on p1.id = p2.id
when matched then
update set p1.iPartitionID = right(p2.id,1);
end
조건이다. 1] id는 ID 자동 증분 열 입니다. 2] UserName은 기본값으로 설정됩니다. 3] iPartitionID는 트리거의 삽입을 기반으로합니다.
그래서 내 질문에 레코드를 삽입해야한다고 가정 해 봅시다. 2 번 열에 값을 삽입하려면 테이블에 삽입 명령을 실행해야합니다.
왜냐하면 삽입 트리거가 생성되어 삽입 명령이 중요하기 때문입니다.
내가
insert Bulk_Data(UserName) values('Suraj Sheikh')
잘 작동하지만 난 어떤 사용자 이름을 삽입하지 않으려면을 실행할 때.
이 가능합니까?
여기서 도와주세요.
왜 병합 명령문을 단독으로 실행할 수 있습니까? 왜 각 삽입에 대한 iPartitionID 열 (모든 행)을 계산하고 싶습니까? 'inserted' 테이블을 사용하여 수정할 행을 결정하거나 트리거 대신 계산 된 열'iPartitionID right (pd.id, 1)'을 사용할 수 있습니다. –
내가 프로세스를 자동화하고 싶어하기 때문입니다. –
계산 된 열은 트리거가 필요없이 자동화됩니다. –