본문 바로가기

DataBase/MSSQL24

[MSSQL] BEGIN, ROLLBACK, COMMIT TRANSACTION --트랜젝션 시작 BEGIN TRAN SELECT ~~~ INSERT ~~~ UPDATE ~~ -- @@ERROR은 성공 시 0, 실패 시 다른 값이 return됨 IF @@ERROR0 BEGIN -- 실패시 원상복구 ROLLBACK TRAN END -- 성공시 COMMIT TRAN 2021. 4. 2.
[MSSQL] index 확인 MSSQL index 확인 방법 sp_helpIndex [테이블명] 실행 결과 2021. 3. 9.
[MSSQL] SQL 합집합, 교칩합, 차집합 구하기 [MSSQL] SQL 합집합, 교칩합, 차집합 구하기 * SELECT되는 컬럼의 갯수는 일치해야함 SELECT [Column1],[Column2],[Column3],[Column4],[Column5]FROM [Table1]WHERE 조건 -- UNION -- 중복을 삭제한 합집합-- UNION ALL -- 중복을 포함한 합집합-- EXCEPT -- 차집합-- INTERSECT -- 교집합 SELECT [Column1],[Column2],[Column3],[Column4],[Column5]FROM [Table2]WHERE 조건 2018. 10. 31.
[MSSQL] 프로시저(Stored Procedure)내 문자열 검색 [MSSQL] 프로시저(stored procedure)내 문자열 검색, 문자열 찾기How to find specific text in stored procedure 프로시저내에서 특정 문구를 검색 할 경우 사용 RIGHT WAY) --1) SELECT DISTINCT a.nameFROM sysobjects AS aLEFT JOIN syscomments AS b ON a.id = b.idWHERE a.xtype = 'P'AND b.text LIKE '%[TEXT]%' --2)SELECT OBJECT_NAME(object_id), OBJECT_DEFINITION(object_id) FROM sys.procedures WHERE OBJECT_DEFINITION(object_id) LIKE '%[TEXT]%' .. 2018. 10. 1.
[MSSQL] 사용자 정의 테이블 형식 지정 및 사용 [MSSQL] 사용자 정의 테이블 형식 지정 및 사용 --생성 CREATE 프로그래밍 기능 > 유형 > 사용자정의테이블형식 > CREATE CREATE TYPE [MYTABLETYPE] AS TABLE(column1 int(10),column2 varchar(10))GO -- 삭제 DROP DROP TYPE [MYTABLETYPE] GO -- 사용 USE 프로시저에서 부를 경우 CREATE PROCEDURE sp_AAA@count int,[@변수명] [사용자정의테이블형식] READONLY //READONLY필수AS How to use in procedure CREATE PROCEDURE sp_AAA@count int,[@param] [userType] READONLY //READONLY is mandat.. 2018. 7. 4.
[MSSQL] 인덱스(index) 관련 쿼리 --인덱스 생성 CREATE INDEX [INDEX NAME] ON [TABLE NAME](COLUMN NAME) --인덱스 정보 확인--인덱스명(index_name), 인덱스 설명 (index_description), 인덱스 키(index_keys) EXEC sp_helpindex --인덱스 정보조회 (단편화) DBCC showcontig [TABLE NAME] --인덱스 통계보기 DBCC show_statistics ([TABLE NAME], [INDEX NAME]) *참고Updated : 통계가 최종 업데이트 된 날짜Rows: 총 행수Rows Sampled : 샘플링된 행 수 (통계 정보를 구하기 위해 샘플링된 행 수로 행 수가 많을 경우 샘플링함)Steps : Histogram 단계수(MAX 20.. 2018. 6. 5.
[MSSQL] NUMERIC 선언 방법 [MSSQL] NUMERIC 선언 방법 NUMERIC([최대 자릿수], [소수점 아래 자릿수]) 로 소수점 아래 자리를 선언하지 않아도 실행에는 상관 없으나 받은 값에 소수점 아래 자리가 있을 경우 전체가 표기되지 않음 --SELECT Result : 55000DECLARE @MONEY NUMERIC(10) --SELECT Result : 55000.5--DECLARE @MONEY NUMERIC(10,1) --SELECT Result : 55000.56--DECLARE @MONEY NUMERIC(10,2) --SELECT Result : 55000.568--DECLARE @MONEY NUMERIC(10,3) SET @MONEY = '55000.568'SELECT @MONEY 2018. 5. 28.
[MSSQL] 격리수준 (TRANSACTION ISOLATION LEVEL) 커밋되지 않은 데이터를 읽을 수 있는 수준으로두가지 방법이 존재함. 실제로 UPDATE되지 않고 ROLLBACK될 경우 기존데이터와 다른 값을 SELECT하게 됨 즉, 참조 무결성을 깨뜨릴 수 있다는 단점이 있으나그럴 경우가 극히 드문 경우 자주 사용 -- 1. 해당 SELECT 문장에만 적용 SELECT * FROM [TABLE NAME] WITH (NOLOCK) WHERE ~~~ -- 2. 해당 SESSION에 모두 적용 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SELECT ~~~SET ~~~INSERT~~~ 2018. 5. 24.
[MSSQL] 테이블 형식 확인 When you checking column format. sp_columns [table Name] SELECT * FROM information_schema.columns WHERE table_name = '[table Name]' SQL)sp_columns [table Name] Result) SQL)SELECT * FROM information_schema.columns WHERE table_name = '[table Name]' Result) 2018. 3. 13.