일반적으로 프런트 엔드 데이터베이스의 행 데이터가있는 경우 데이터베이스에서 해당 행을 업데이트하는 데 사용할 수있는 모든 값이 있어야합니다. 실제로 변경되었는지 여부에 관계없이 모든 값을 업데이트에 전달해야합니다. 그렇지 않으면, 데이터베이스는 실제로 열의 NULL 값을 얻었는지 여부를 알지 못합니다. 그 이유는 실제 값을 전달하지 않았기 때문입니다.
테이블에서 특정 열을 필요로하지 않는 응용 프로그램 영역을 가지려면 해당 열을 사용하지 않는 추가 저장 프로 시저를 설정할 수 있습니다. 프런트 엔드 개체를 채울 때 데이터베이스에서 모든 열을 검색하는 것이 더 쉽습니다. 여분의 열의 오버 헤드는 일반적으로 최소한이고 여러 업데이트 저장 프로 시저의 유지 관리에 가치가 있습니다.
다음은 예입니다. 그것은 MS SQL 서버 구문, 그래서 당신은 약간 변경해야 할 수도 있습니다, 그러나 희망이 아이디어를 보여
CREATE PROCEDURE Update_My_Table
@my_table_id INT,
@name VARCHAR(40),
@description VARCHAR(500),
@some_other_col INT
AS
BEGIN
UPDATE
My_Table
SET
name = @name,
description = @description,
some_other_col = @some_other_col
WHERE
my_table_id = @my_table_id
END
CREATE PROCEDURE Update_My_Table_Limited
@my_table_id INT,
@name VARCHAR(40),
@description VARCHAR(500)
AS
BEGIN
UPDATE
My_Table
SET
name = @name,
description = @description
WHERE
my_table_id = @my_table_id
END
당신이 볼 수 있듯이, 당신이 업데이트하지 않는 그 열을 제거를 UPDATE 문에서. 배 밖으로 이동하지 않고 업데이트하려는 모든 열의 조합에 대해 저장 프로 시저를 만들려고 시도하십시오. 처음부터 테이블에서 선택할 때 DB에서 여분의 열을 얻는 것이 훨씬 쉽습니다. 결국 동일한 값을 전달하게 될 것이고 서버는 똑같은 값으로 열을 업데이트 할 것이지만 큰 문제는 아닙니다. 프론트 엔드를 코딩하여 데이터베이스에서 실제로 아무것도 업데이트하기 전에 하나 이상의 열이 변경되었는지 확인할 수 있습니다.