'Study portfolio'에 해당되는 글 43건

[MSSQL] 특정 필드 Update 시 Trigger 작동

Database/MSSQL
테이블의 특정 필드 값 Update 시 Trigger 작동 여러 개의 Record가 Update 발생 한 경우에 Trigger 작동할려면, Cursor 이용 해서 처리 해야 한다.
CREATE TRIGGER [트리거명] ON [트리거 생성할 테이블명]
FOR UPDATE 
AS
BEGIN 
	IF UPDATE([특정 필드명]) BEGIN
		-- PK, FK등 순회 조건을 알맞게 변수Name과 변수Type을 선언해주세요.
		DECLARE @_조건1	VARCHAR(5)
		DECLARE @_조건2	VARCHAR(5)
		DECLARE @_조건3	VARCHAR(5)
		
		DECLARE @_특정필드 VARCHAR(1)

		DECLARE UPDATE_CURSOR CURSOR FOR
			SELECT [순회조건1], [순회조건2], [순회조건3], [특정 필드명] FROM INSERTED
		
		OPEN UPDATE_CURSOR
		FETCH NEXT FROM UPDATE_CURSOR INTO @_조건1, @_조건2, @_조건3, @_특정필드
		
		WHILE @@FETCH_STATUS = 0 BEGIN
			-- 구현로직 입력
			
			FETCH NEXT FROM UPDATE_CURSOR INTO @_조건1, @_조건2, @_조건3, @_특정필드
		END
		
		CLOSE UPDATE_CURSOR;
		DEALLOCATE UPDATE_CURSOR;
	END
END

[MSSQL]StoredProcedure SET Statements

Database/MSSQL

- SET NOCOUNT ON/OFF

Stops the message that shows the count of the number of rows affected by a Transact-SQL statement or stored procedure from being returned as part of the result set.


예시1)

CREATE PROCEDURE dbo.getRecordSet

BEGIN

    SELECT *

      FROM #LIST

END


예시2)

CREATE PROCEDURE dbo.getRecordSet

BEGIN

SET NOCOUNT ON

     SELECT *

 FROM #LIST

END


EXEC dbo.getRecordSet 호출 시 예시1은 RecordSet을 넘겨 받지 못하며, 예시2RecordSet 넘겨 받는다.


프로시저는 항상 자신의 마지막 로직(SELECT, UPDATE, INSERT, DELETE)에서 영향받은 record 수를 반환한다. 

이를 통해서, 'N개의 행이 적용되었습니다.' 메세지를 뿌려주게 된다. SET NOCOUNT ON 할 경우, record 수를 반환하지 않는다.



- SET ANSI_NULLS ON/OFF

Specifies ISO compliant behavior of the Equals (=) and Not Equal To (<>) comparison operators when they are used with null values in SQL Server 2016.


예시전 기초 Table 생성)

SELECT '1' AS SEQ, NULL AS VALUE

INTO #LIST

UNION ALL

SELECT '2' AS SEQ, 'A' AS VALUE

UNION ALL

SELECT '3' AS SEQ, 'B' AS VALUE


예시1)

SET ANSI_NULLS ON

GO


SELECT SEQ, VALUE

  FROM #LIST

 WHERE VALUE = NULL


예시2)

SET ANSI_NULLS OFF

GO


SELECT SEQ, VALUE

  FROM #LIST

 WHERE VALUE = NULL


예시1은 조회된 record 수가 없으며, 예시2은 seq=1의 record 조회 된다.


SELECT *

  FROM #LIST

 WHERE VALUE IS NULL


SET ANSI_NULLS 과 무관하게 VALUE=NULL인 record를 조회하고 싶다면, 다음과 같이 Sql 문을 작성하자.



- SET QUOTED_IDENTIFIER ON/OFF

Causes SQL Server to follow the ISO rules regarding quotation mark delimiting identifiers and literal strings. Identifiers delimited by double quotation marks can be either Transact-SQL reserved keywords or can contain characters not generally allowed by the Transact-SQL syntax rules for identifiers.


예시1-1)

SET QUOTED_IDENTIFIER ON

GO

select "실행" as seq


예시1-2)

SET QUOTED_IDENTIFIER OFF

GO

select "실행" as seq


예시2-1)

SET QUOTED_IDENTIFIER ON

GO

select CHAR(39)+'실행'+CHAR(39) as seq


예시2-1)

SET QUOTED_IDENTIFIER OFF

GO

select "'실행'" as seq


예시3-1) 위에서 생성한 #LIST 이용

SET QUOTED_IDENTIFIER ON

GO

SELECT *
  FROM #LIST
 WHERE "VALUE" IS NULL

예시3-2) 위에서 생성한 #LIST 이용

SET QUOTED_IDENTIFIER OFF

GO

SELECT *
  FROM #LIST
 WHERE "VALUE" IS NULL


예시1-1은 Error가 발생하며, 예시1-2은 Error가 발생되지 않는다.

예시2-1, 예시2-2은 같은 결과를 return 한다.

예시3-1은 seq=1의 record 조회되며, 예시3-2은 조회된 record 수가 없다. 


옵션이 ON으로 설정되면 식별자를 큰따옴표(")로 구분할 수 있고, 리터럴을 작은따옴표(')로 구분해야 합니다.

OFF(기본값)로 설정되면 식별자가 따옴표 안에 있을 수 없고 모든 Transact-SQL 식별자 규칙을 따라야 합니다. ex) [VALUE] (O), "VALUE" (X)

리터럴은 작은따옴표(') 또는 큰따옴표(")으로 구분할 수 있습니다.



* 참조

https://msdn.microsoft.com/en-us/library/ms190356.aspx

MS SQL Server Management Studio 단축키 모음

Database/MSSQL

※ MS SQL Server Management Studio 단축키 모음


 단축키

 설명

 CTRL+SHIFT+L

 선택영역을 소문자로

 CTRL+SHIFT+U 선택영역을 대문자로
 CTRL+F

 찾기

 CTRL+G 지정한 줄 위치로 이동
 CTRL+L 예상실행계획 보이기
 F5 or Ctrl + E 쿼리 실행하기 (선택영역이 있으면 선택한 곳만)
 Ctrl+K+C 석 생성
 Ctrl+K+U

 주석 제거


* 출처

http://www.sqlserver-training.com/sql-server-management-studio-ssms-keyboard-shortcut-keys/-

http://www.sqler.com/342401


SSMS(SQL Server Management Studio) 로그인 자동완성 삭제하기

Database/MSSQL

1. SQL Server Management Studio 2008 인 경우

C:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin


2. SQL Server Management Studio 2012 인 경우

C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\11.0\SqlStudio.bin


3. SQL Server Management Studio 2014 인 경우

C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\12.0\SqlStudio.bin


* 출처

http://stackoverflow.com/questions/349668/removing-the-remembered-login-and-password-list-in-sql-management-studio

KAIST 주최 Machine Learning Summer Camp

Machine Learning



우분투에서 JDK 1.8 설치

OS/Linux

우분투에서 JDK 1.8 설치 하기 위해서 Console 창을 연다.

Console 창을 띄우는 방법은 Ctrl + Alt + T 입력 하면 다음과 같이 Console 창이 열린다.



여기서 다음 명령어를 차례대로 입력하면 된다. 














VirtualBox에 우분투를 설치해보자(3)

OS/Linux

정상적인 해상도로 실행으로 실행 해보자.






재 시작 후 다음과 같이 정상적인 해상도를 사용 할 수 있다.



'OS > Linux' 카테고리의 다른 글

우분투에서 JDK 1.8 설치  (0) 2015.10.24
VirtualBox에 우분투를 설치해보자(2)  (0) 2015.10.24
VirtualBox에 우분투를 설치해보자(1)  (0) 2015.10.24

VirtualBox에 우분투를 설치해보자(2)

OS/Linux


시작를 선택하면 다음과 같은 화면이 뜬다.









설치가 완료되면 다음 화면이 뜬다. 다시 시작을 선택한다.






설치가 완료되었다. 근데 화면이 작아졌는데 당황하지 말자. 화면을 키워보자.

'OS > Linux' 카테고리의 다른 글

우분투에서 JDK 1.8 설치  (0) 2015.10.24
VirtualBox에 우분투를 설치해보자(3)  (0) 2015.10.24
VirtualBox에 우분투를 설치해보자(1)  (0) 2015.10.24

VirtualBox에 우분투를 설치해보자(1)

OS/Linux

먼저 우분투 설치 파일을 다운로드 하자.

http://www.ubuntu.com/ 에 접속, Download > Desktop 메뉴로 이동 후 다운로드




다음, VirtualBox 를 설치하자.

https://www.virtualbox.org/ 에 접속, 설치 파일을 다운로드한다.


설치하면 후 프로그램 실행하면 다음과 같은 화면이 뜬다.




여기서 새로만들기를 선택한다.













이제 진짜로 설치를 시작해보죠.


'OS > Linux' 카테고리의 다른 글

우분투에서 JDK 1.8 설치  (0) 2015.10.24
VirtualBox에 우분투를 설치해보자(3)  (0) 2015.10.24
VirtualBox에 우분투를 설치해보자(2)  (0) 2015.10.24

[STS] encoding 관련 warning 처리

Web/Spring

[WARN] Using platform encoding (MS949 actually) to copy filtered resources, i.e. build is platform dependent!


위와 같은 warning log가 발생하는 경우


- 해결방안

pom.xml 에 properties에 다음 두 라인을 추가하면 warning이 사라진다.


<properties>

....

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

</properties>

'Web > Spring' 카테고리의 다른 글

[오류] Cannot change version of project facet Dynamic Web Module  (0) 2017.06.23
Resolvering Views  (0) 2016.07.14