1
열에 명시적인 값을 지정하지 못하도록하는 방법이 있습니까? ID 특성은 IDENTITY_INSERT가 꺼져있는 한 명시 적 값을 지정하지 못하게합니다. 이는 원하는 동작 유형입니다.열의 값 지정 방지
create table testguid (
ID uniqueidentifier default newsequentialid() not null primary key
,somedate datetime
)
[제약 또는 여기 트리거?]
insert into testguid (somedate) values (getdate()) -- this is ok
insert into testguid (ID, somedate) values (newid(), getdate()) -- this is not ok
내가 값을 삽입하기 위해 데이터베이스를 원하지만, 내가 그들을 지정의 방법을 방지 할 수 있습니다.
올바른 생각인데, 나는이 말을해야만했지만 오류를 반환하고 명령을 롤백하여이를 방지하려고합니다. –
내가 할 수 있을지 모르겠다. 'inserted' 의사 - 테이블은 그것이 사용자에 의해 지정되었는지 여부에 관계없이 값을 포함 할 것이고, 그것이 당신의'newsequentialid' 순서에 있는지 아닌지를 결정하는 것이 어려울 것이라고 생각합니다. 사람들이이 컬럼을 지정하지 못하게하려는 이유는 무엇입니까? 이것을 제어하는 올바른 방법은 테이블에 대한 삽입 권한을 제거하고 해당 열에 대한 매개 변수를 허용하지 않는 저장 프로 시저를 통과하도록하는 것입니다. –