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 의 컬럼의 갯수와 순서가 동일해야 함- 각 상호 비교되는 컬럼들의 데이터 형식이 호환되어야 함
1234SELECT OBJECT_NAME(object_id), OBJECT_DEFINITION(object_id) FROM sys.procedures WHERE OBJECT_DEFINITION(object_id) LIKE '%찾을 내용%' Colored by Color Scriptercs 찾을내용에 데이터 넣어주고 검색하면 쭉 나옵니다!
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) !
무심코 습관적으로 넘어가기 쉬운 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..