본문 바로가기
공부,일/SQL

210527

by fromnothing1 2021. 5. 27.

1. GO : 수행 단위 구분 명령어 

MSSQL에서 GO 명령은 배치단위를 구분하는 명령으로 사용됩니다.

 

예를 들어, 아래와 같이 GO로 구분되면 한꺼번에 두 개의 문장을 실행하였다고 하더라도, 두 개의 문장은 별도의 배치로 실행됩니다.

 

SELECT * FROM 테이블

go

SELECT * FROM 테이블
go

 

하지만 아래와 같이 GO로 구분하지 않으면, 두 개의 문장은 하나의 배치로 한꺼번에 실행됩니다.

 

SELECT * FROM 테이블

SELECT * FROM 테이블
go

 

EX)

DECLARE @num int

go

SET @num = 10

 

하시면 에러가 납니다.

 

SET @num = 10 은 go 위에서 정의 되었는데.

go를 사용함으로써 일괄처리가 끝나고 다시 새로운 일괄처리가 시작되므로써,

변수가 정의가 되지 않은 것입니다.


출처: https://police84.tistory.com/76 [찐빵의 IT World]

 

VIEW 생성

CREATE VIEW uv_memberTBL
AS
SELECT memberName, memberAddress FROM memberTBL;

 

 

저장 프로시저(메서드)

CREATE PROCEDURE myProc  -- 프로시저 생성
AS
	SELECT * FROM memberTBL 
	WHERE memberName = '당탕이'  ;

	SELECT*FROM productTBL 
	WHERE productName = '냉장고';
GO


EXECUTE myProc; --프로시저 실행

INSERT INTO

INSERT INTO memberTBL VALUES('Figure','연아','경기도 군포시 당정동');

UPDATE SET

UPDATE memberTBL SET memberAddress = '서울 강남구 역삼동' WHERE memberName = '연아';

DELETE

DELETE memberTBL WHERE memberName = '연아';

CREATE

CREATE TABLE deletedMemberTBL
  ( memberID char(8) ,
    memberName nchar(5) ,
    memberAddress nchar(20),
    deletedDate date --삭제한 날짜
    );

TRIGGER

특정한 작업이 실행될때 자동으로 실행되는 코드 

 

ex) 밑의 코드는 delete 시 삭제되는 데이터를 deletedMemeberTBL 테이블에 자동으로 저장하는 TRIGGER 코드이다.

CREATE TRIGGER trg_deleteMemberTBL
ON memberTBL
AFTER DELETE
AS 
INSERT INTO deletedMemberTBL
	SELECT memberID,memberName,memberAddress, GETDATE() FROM deleted;
-- 실행 
SELECT * FROM memberTBL;
DELETE memberTBL WHERE memberName = '당탕이';
SELECT * FROM memberTBL;
SELECT * FROM deletedMemberTBL;

실행 모습

삭제된 당탕이가 deletedMemberTBL 테이블에 INSERT 되는 것을 알 수 있다.

 

 

'공부,일 > SQL' 카테고리의 다른 글

210531_2  (0) 2021.05.31
210531  (0) 2021.05.31
MS-SQL 백업, 복원  (0) 2021.05.27
SQLD 오답  (0) 2021.05.26
210526  (0) 2021.05.26

댓글