프로그램 개발/DB(MSSQL)

프로그램 개발/DB(MSSQL)

EXCEPT 제외, 차집합

1. EXCEPT- SELECT * FROM TableA EXCEPT SELECT * FROM TableB ( TableA Row 내용 중 TableB와 Row 내용이 같지 않거나 TableA 에는 있는데 TableB에는 없는 데이터를 리턴 )- 차집합 개념 2. INTERSECT- SELECT * FROM TableA INTERSET SELECT * FROM TableB( TableA 와 TableB 가 일치하는 결과를 리턴 )- 교집합 개념 3. 주의 사항- TableA 와 TableB 의 컬럼의 갯수와 순서가 동일해야 함- 각 상호 비교되는 컬럼들의 데이터 형식이 호환되어야 함

프로그램 개발/DB(MSSQL)

MSSQL 저장프로시저(SP) 내용 검색하는 방법

1234SELECT OBJECT_NAME(object_id), OBJECT_DEFINITION(object_id) FROM sys.procedures WHERE OBJECT_DEFINITION(object_id) LIKE '%찾을 내용%' Colored by Color Scriptercs 찾을내용에 데이터 넣어주고 검색하면 쭉 나옵니다!

프로그램 개발/DB(MSSQL)

MSSQL WITH(NOLOCK) 쓰는 이유

SQL Sever 기본격리수준(isolation level)은 read committed 그래서 공유잠금이 유지됨. 쉽게말해 SELECT 실행중인 동안에 같은 ROW, TABLE에 INSERT, UPDATE 작업이 BLOCK 되는데 반대로 같은 ROW, DATA PAGE 혹은 테이블 데이터를 INSERT, UPDATE 하는동안 SELECT문은 BLOCK 되어서 성능이 떨어짐. 일반적으로 단순조회쿼리에서는 WITH(NOLOCK)문을 추가하면 빨라짐! EX) SELECT * FROM TEST with(nolock) !

프로그램 개발/DB(MSSQL)

SELECT 해온 값 INSERT

INSERT INTO 테이블이름 ( 열1,열2,열3,열4 ….)SELECT 테이블에 들어갈 값FROM selct값을 구하기 위한 테이블WHERE 조건

프로그램 개발/DB(MSSQL)

서로다른 DB간 테이블 복사 ( SQL Management Studio )

1SELECT * INTO 새 테이블 명 FROM 원본DB명.dbo.원본 테이블 명cs

프로그램 개발/DB(MSSQL)

MSSQL 날짜 데이터 형식 ( Getdate() ) 자유롭게 변환

12345678910111213141516171819202122--Getdate()Select Getdate()--YYYY/MM/DDSelect Convert(varchar(10),Getdate(),111)--YYYYMMDDSelect Convert(varchar(10),Getdate(),112)--HH:MM:SSSelect Convert(varchar(8),Getdate(),108)--HH:MM:SS:mmmSelect Convert(varchar(12),Getdate(),114)--HHMMSSSelect Replace(Convert(varchar(8),Getdate(),108),':','')--HHMMSSmmmSelect Replace(Convert(varchar(12),Getdate(),114),':..

프로그램 개발/DB(MSSQL)

세로 데이터 가로로 회전하여 출력하기!

1234567891011121314151617181920212223242526272829303132333435select WorkGrName , substring(YearMonth ,1,4) Years , SUM(CASE WHEN right(YearMonth,2) ='01' THEN ISNULL(SumAmt,0) else 0 end) 'Amt01' , SUM(CASE WHEN right(YearMonth,2) ='01' THEN ISNULL(SumQty,0) else 0 end) 'Qty01' , SUM(CASE WHEN right(YearMonth,2) ='02' THEN ISNULL(SumAmt,0) else 0 end) 'Amt02' , SUM(CASE WHEN right(YearMonth,2) =..

프로그램 개발/DB(MSSQL)

프로시저로 RecordSet 넘기기

무심코 습관적으로 넘어가기 쉬운 SET NOCOUNT ON/OFF RecordSet을 리턴하는 프로시저를 만들었다. CREATE PROCEDURE dbo.getNewNumber BEGIN DECLARE @NEW_NUM INT SET @NEW_NUM = 1 SELECT @NEW_NUM END Visual Basic에서 다음과 같이 받는다. Dim rs as new ADODB.RecordSet Dim strSql as String Dim res as Long strSql = "EXEC dbo.getNewNumber" rs.open strSql, conn res = rs(0) rs.close 하지만 절대 리턴값을 받지 못할 것이다. 왜냐하면 SET NOCOUNT ON이 빠져있기 때문이다. CREATE PROC..

LinuxZone
'프로그램 개발/DB(MSSQL)' 카테고리의 글 목록