Programing

SQL 테이블에 기본값을 삽입하는 방법은 무엇입니까?

crosscheck 2020. 12. 6. 21:12
반응형

SQL 테이블에 기본값을 삽입하는 방법은 무엇입니까?


다음과 같은 테이블이 있습니다.

create table1 (field1 int,
               field2 int default 5557,
               field3 int default 1337, 
               field4 int default 1337)

field2 및 field4에 대한 기본값이있는 행을 삽입하고 싶습니다.

나는 시도 insert into table1 values (5,null,10,null)했지만 작동 ISNULL(field2,default)하지 않고 작동하지 않습니다.

행을 삽입 할 때 열에 대한 기본값을 사용하도록 데이터베이스에 알리려면 어떻게해야합니까?


insert 문에 기본값을 사용할 열을 포함하지 마십시오. 예를 들면 :

INSERT INTO table1 (field1, field3) VALUES (5, 10);

... field2field4대한 기본값을 사용 하고 에 5를 할당 field1하고에 10을 할당 합니다 field3.


테이블 변경 (새 열 또는 열 순서 등)에 독립적이되도록 열을 나열하는 것이 가장 좋습니다.

insert into table1 (field1, field3)  values (5,10)

그러나 이것을 원하지 않으면 DEFAULT키워드를 사용하십시오.

insert into table1 values (5, DEFAULT, 10, DEFAULT)

가장 좋은 방법은 다음과 같습니다.

insert your_table
default values

이렇게 해봐

INSERT INTO table1 (field1, field3) VALUES (5,10)

그러면 field2와 field4에 기본값이 있어야합니다.


열에 NULL값이 없어야 하는 경우 열도 정의해야합니다 NOT NULL. 그렇지 않으면 전달 된 값 NULL이 기본값 대신 사용되어 오류가 발생하지 않습니다.

당신이 통과하지 않을 경우 어떤 (당신은 그 필드를 지정해야합니다 이러한 필드 값 않습니다 사용할)를 기본값이 사용됩니다 :

INSERT INTO 
  table1 (field1, field3) 
VALUES   (5,10)

이런 식으로 쓸 수 있습니다

GO
ALTER TABLE Table_name  ADD
column_name decimal(18, 2) NOT NULL CONSTRAINT Constant_name DEFAULT 0
GO
ALTER TABLE Table_name SET (LOCK_ESCALATION = TABLE)
GO
COMMIT

기본값을 삽입하려면 다음과 같이 생략해야합니다.

Insert into Table (Field2) values(5)

다른 모든 필드는 정의 된 경우 null 또는 기본값을 갖습니다.


CREATE PROC SP_EMPLOYEE                             --By Using TYPE parameter and CASE  in Stored procedure
(@TYPE INT)
AS
BEGIN
IF @TYPE=1
BEGIN
SELECT DESIGID,DESIGNAME FROM GP_DESIGNATION
END
IF @TYPE=2
BEGIN
SELECT ID,NAME,DESIGNAME,
case D.ISACTIVE when 'Y' then 'ISACTIVE' when 'N' then 'INACTIVE' else 'not' end as ACTIVE
 FROM GP_EMPLOYEEDETAILS ED 
  JOIN  GP_DESIGNATION D ON ED.DESIGNATION=D.DESIGID
END
END

참고 URL : https://stackoverflow.com/questions/8777362/how-to-insert-default-values-in-sql-table

반응형