728x90

Database/ms-sql 11

[MS-SQL] TOP (N) n개의 행에 대한 등록, 수정, 삭제 - UPDATE TOP(n), INSERT TOP(n), DELETE TOP(n)

TOP 쿼리에 의해 영향받는 ROW 의 수를 지정한다. 예제 테이블 (Test) * SELECT : TOP n개의 데이터만 출력 SELECT TOP(1) * FROM Test ORDER BY Idx DESC; * INSERT : TOP 을 이용하여 INSERT 되는 행의 수를 제한 INSERT TOP (1) INTO Test(Dept, Name) SELECT Dept, Name FROM Test * UPDATE : TOP 을 이용하여 UPDATE 되는 행의 수를 제한 UPDATE TOP (1) Test SET DEPT = 'Sales' WHERE NAME='A' * DELETE : TOP 을 이용하여 DELETE 되는 행의 수를 제한 DELETE TOP (1) FROM Test WHERE NAME = 'A'

Database/ms-sql 2020.12.31

[MS-SQL] 열번호(순서) 매기기 - ROW_NUMBER() OVER(PARTION BY ORDER BY )

ROW_NUMBER() 결과 집합에서 행번호를 반환하여 노출합니다. 구문 ROW_NUMBER() OVER( [ PARTITION BY partiotion_value ] ORDER BY orderby_value ) ORDER BY : 결과 집합의 행 번호가 할당되는 순서를 지정하는 열 (Require) PARTITION BY : 결과 집합에서 그룹(파티션)별로 나누게 되는 열 (Optional) 예) Test 테이블 생성 name 으로 정렬된 번호를 노출 partition by 에 의해서 "dept" 열로 파티션되어 순번이 노출

Database/ms-sql 2020.12.24

[MS-SQL] 시스템 변수 - @@IDENTITY

@@IDENTITY 시스템에서 마지막 IDENTITY 열에 입력된 ID 값을 반환합니다. * @@IDENTITY 값은 TRANSACTION 이 ROLLBACK 되어도 이전 값으로 되돌아 가지 않습니다. -- 테스트용 ID 테이블 CREATE TABLE Test ( IDX INT IDENTITY ,NAME VARCHAR(10) ) -- 롤백 관련 테스트 BEGIN TRAN INSERT INTO Test values('AA') ROLLBACK TRAN SELECT @@IDENTITY -- 테이블(뷰)의 id 값을 반환한다. (현재 세션이 아닌 다른 세션에서도 동일한 id 값을 가져온다.) SELECT IDENT_CURRENT('Test') INSERT INTO Test values('AA') -- 현재 세션..

Database/ms-sql 2020.12.21

[MS-SQL] 시스템 변수 - @@ERROR, @@ROWCOUNT

@@ERROR @@ERROR 현재 시스템의 최근 실행된 SQL문의 에러코드를 반환 사용자 프로시져나 함수 등에서 함수의 종료나, SQL구문 의 유효성 검사등에 이용한다. IF @@ERROR 0 BEGIN -- 이전 구문에서 에러가 발생 PRINT 'ERROR' END ELSE BEGIN -- 정상 완료 PRINT 'OK' END @@ROWCOUNT @@ROWCOUNT 최근에 실행된 SQL문에 의해 영영받은 행의 수를 반환 SELECT, INSERT, UPDATE 구문이 실행된 행수 를 반환하게 되며 SET,USE 등은 1을 반환하게 되어 이전에 실행한 구문 바로 아래에서 @@ROWCOUNT 를 확인해야 한다. SELECT 구문의 실행된 @@ROWCOUNT 값 SELECT TOP 2 * FROM TB_CA..

Database/ms-sql 2020.12.21

[MS-SQL] ROUND, CEILING, FLOOR(반올림, 올림, 버림) 1, 10 의 자리 올림(버림)

반올림 : ROUND(값, 자릿수, [반올림여부]) * 자릿수는 소수점을 기준으로 양수이면 소수점 자릿수, 음수이면 정수 * 반올림여부는 옵션으로 음수이면 버림처리, 0이나 없으면 반올림 -- 소수점 반올림 SELECT ROUND(940.13, 1)--940.10 SELECT ROUND(940.16, 1)--940.20 SELECT ROUND(940.16, 1, -1)--940.10 -- 자리수 반올림 SELECT ROUND(941, -1)--940 SELECT ROUND(946, -1)--950 SELECT ROUND(946, -2)--900 SELECT ROUND(946, -1, -1)--940 올림 : CEILING(값) * 무조건 정수값 출력 SELECT CEILING(940.16)--941 SE..

Database/ms-sql 2020.11.26

[MS-SQL] 테이블 복사, SELECT(INSERT) INTO, IDENTITY_INSERT, DBCC CHECKIDENT, IDENTITY 컬럼에 INSERT방법

테이블 전체 및 컬럼을 다른 테이블로 복사 INSERT 방법 SELECT INTO 대상테이블을 신규로 생성을 한 후 INSERT 실행 SELECT 컬럼명 INTO 대상테이블 FROM 원본테이블 WHERE 조건식 예) SELECT * INTO TB_COLOR_TEMP FROM TB_COLOR WHERE AREA>1000 INSERT INTO 원본테이블의 SELECT 데이터를 대상 테이블로 INSERT 실행 INSERT INTO 대상테이블 SELECT * FROM 원본테이블 WHERE 조건식 예) INSERT INTO TB_COLOR_TEMP SELECT * FROM TB_COLOR WHERE AREA>1000 IDENTITY 컬럼에 INSERT 방법 IDENTITY 자동증가 컬럼으로 INSERT 하려고 하..

Database/ms-sql 2020.11.16

[MS-SQL] 문자열 분리 Split 함수(사용자 함수)

MS-SQL 문자열 분리하여 가져오기 쿼리(사용자 함수, 프로시져) 문자열과, Split 할 문자, Select 할 인덱스 번호를 입력받아 Split 한 String 을 반환한다. 사용방법 create FUNCTION [dbo].[UF_GET_STRSPLIT] ( @iStrString VARCHAR(MAX),-- 전체 문자열 @iStrDelim VARCHAR(10),-- 자를 문자열 @iIntIndex INT-- select 인덱스 ) RETURNS VARCHAR(256) AS BEGIN DECLARE @vStrRetVal NVARCHAR(256) DECLARE @vIntStrlen INT DECLARE @vIntDellen INT DECLARE @vIntCnt INT DECLARE @vIntCnt2 I..

Database/ms-sql 2020.11.10

[MS-SQL] 테이블, 컬럼 설명 추가, 수정 하기(SP_ADDEXTENDEDPROPERTY, SP_UPDATEEXTENDEDPROPERTY)

테이블(컬럼) 설명 추가(수정) -- 테이블 설명 추가 EXEC SP_ADDEXTENDEDPROPERTY 'MS_Description', '테이블 설명', 'user', @user, 'table', @TABLE_NAME -- 테이블 설명 수정 EXEC SP_UPDATEEXTENDEDPROPERTY 'MS_Description', '테이블 설명', 'user', @user, 'table', @TABLE_NAME -- 컬럼 설명 추가 EXEC SP_ADDEXTENDEDPROPERTY 'MS_Description', '컬럼 설명', 'user', @user, 'table', @TABLE_NAME, 'column', @COLUMN_NAME -- 컬럼 설명 수정 EXEC SP_UPDATEEXTENDEDPROPER..

Database/ms-sql 2020.11.04

[MS-SQL] 테이블 및 컬럼 설명, 사용자 프로시져(파라미터 만들기)

테이블 정보를 보거나 insert, update 등 쿼리를 만들때마다 테이블의 파라미터 정보를 쉽게 만들어 주는 사용자 프로시져 입니다. 쿼리 바로가기에 등록후 테이블정보가 필요시마다 사용 할 수 있습니다. MS SSMS(SQL Server Management Studio) 쿼리 바로가기 블럭설정 후 바로가기 키를 누르면 그림과 같이 테이블 정보를 볼수 있습니다. * column에 대한 설명 가 등록이 되어야 param_declare, parma_insert 등 parameter 구성하는 데이터가 보입니다. (컬럼 설명 추가(수정) 쿼리 참고) MS-SQL - 테이블, 컬럼 설명 추가, 수정 하기(SP_ADDEXTENDEDPROPERTY, SP_UPDATEEXTENDEDPROPERTY) 테이블 정보 사용..

Database/ms-sql 2020.11.04

MS SSMS(SQL Server Management Studio) 쿼리 바로가기

Management Stuio 의 도구 > 옵션 메뉴 환경 > 키보드 > 쿼리 바로 가기를 통해 등록된 프로시져 이외에 추가로 자주 사용하는 프로시져나 쿼리문을 등록 하여 단축키로 사용 할 수 있습니다. 아래와 같이 등록 후 조회할 테이블을 마우스 블럭 설정을 한 후에 실행을 하면 쿼리가 블록 내용이 바로가기 쿼리와 함께 실행이 됩니다. Ctrl + 9 실행 Ctrl + 0 실행

Database/ms-sql 2020.10.30
728x90