독까의 이야기

DDL, DML, DCL

Database/MS-SQL2016. 7. 25. 14:31
 

DDL(Data Definition Language) 은 데이터베이스의 스키마 객체를 생성(CREATE),


변경(ALTER), 제거(DROP) 하거나 권한의 부여나 박탈(GRANT, REVOKE), 주석(COMMENT),


자료의 버림(TRUNCATE) 등을 수행하는 문장의 집단을 의미한다.


각 문장은 CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE, COMMENT 등으로 시작한다.


이 밖에도 많은 종류의 DDL이 존재한다. 그러나 PL/SQL 블록에서는 DDL을 사용할 수 없다.



DML(Data Manipulation Language)은 스키마 객체의 데이터를 입력(INSERT), 수정(UPDATE),

[Manipulation=교묘한처리,조종]

 

조회(SELECT), 삭제(DELETE)하거나 테이블에 잠금을 설정하거나 (LOCK TABLE), SQL문의


처리의 절차에 대한 정보를 얻거나 (EXPLAIN PLAN), PL/SQL 모듈을 호출하는 작업(CALL)의 집단이다.


각 문장은 INSERT, UPDATE, DELETE, SELECT, LOCK TABLE, EXPLAIN PLAN, CALL 등으로 시작된다.


PL/SQL의 모듈에서 사용할 수 없는 DML로서는 EXPLAIN PLAN과 CALL이 있다.


DCL(Data Control Language)은 트랜잭션의 성격을 제어하는 것으로서 SET TRANSACTION,

 

COMMIT, ROLLBACK, SAVEPOINT와 같은 종류가 있다.


PL/SQL 모듈에서는 DCL을 사용할 수 있고 DCL을 이용하여 모듈의 트랜잭션을 제어 할 수 있다.

1.  MS-SQL 2000 에서 2014 로 DB 이전 했는데 DML 정상 작동하지 않음

2.  MS 에서 안내한 바로는 SQL 2005 이상부터 아래와 같은 오류가 출력 된다고 함

 

오류 메시지 1

결과 창을 마지막으로 검색한 이후 데이터가 변경되었습니다. 지금 변경 내용을 저장하려면 하시겠습니까?
(낙관적 동시성 제어 오류)
그래도 데이터베이스 변경 내용을 커밋할 예 를 클릭하십시오.
변경 내용을 취소하고 이 행에 대한 현재 데이터를 검색하려면 아니요 를 클릭하십시오.
편집을 계속하려면 취소 [NULL]를 클릭하십시오.

참고예 이 오류 메시지 대화 상자에서 행은 제대로 업데이트됩니다.

오류 메시지 2

행이 업데이트되었습니다.
X 행에 데이터가 커밋되지 않았습니다.
오류 원본: Microsoft.VisualStudio.DataTools.
오류 메시지: 해당 행 값이 업데이트되거나 하나가 삭제된 행의 고유 만들지 마십시오 또는 여러 개의 행 (N 행) 변경합니다.
오류를 수정한 및 다시 시도 또는 해당 변경 내용을 취소하려면 Esc 키를 누릅니다.

참고 이 메시지 대화 상자가 나타나면 행을 업데이트할 수 없습니다.

다음 조건에 해당하면 이 문제가 발생합니다.

 * text 또는 ntext 데이터 형식의 열이 하나 이상의 테이블에 들어 있습니다.
 * 이러한 열 중 하나의 값을 다음 문자가 포함되어 있습니다.
 *
  * 백분율 기호 (%)
  * 밑줄 (_)
  * 왼쪽된 대괄호 ()

 * 테이블에 기본 키가 포함되어 있지 않습니다

 

3.  text 형식으로 구성된 열을 찾아서 varchar(max) 로 변경하고 DML 진행

4.  DML 정상 작동 확인

'Database > MS-SQL' 카테고리의 다른 글

현재 사용 중인 DB 중 제한 없는 DB 확인 쿼리  (0) 2016.07.25
DDL, DML, DCL  (0) 2016.07.25
DB 오프라인, 온라인  (0) 2016.07.25
DB 내의 특정 구문 일괄 삭제  (0) 2016.07.25
MS-SQL 모든 사용자 연결 끊기  (0) 2016.07.25

USE master

ALTER DATABASE DB명 SET OFFLINE



USE master
ALTER DATABASE DB명  SET ONLINE

'Database > MS-SQL' 카테고리의 다른 글

DDL, DML, DCL  (0) 2016.07.25
X 행에 데이터가 커밋되지 않았습니다.  (0) 2016.07.25
DB 내의 특정 구문 일괄 삭제  (0) 2016.07.25
MS-SQL 모든 사용자 연결 끊기  (0) 2016.07.25
php + MS-SQL 연동시 확인 사항  (0) 2016.07.22