본문 바로가기
728x90
반응형
MS SQL | xp_cmdshell 활성화 하기 xp_cmdshell 이 무엇인지 검색해보셨을거라 생각합니다. 요약하자면, SQL에서 cmd 명령어를 실행하는 것입니다. 따라서 SQL의 권한보다 더 많은 권한을 갖고 있으므 로, 주의하여 사용해야 합니다. 기본값은 0, 비활성화 되어있습니다. xp_cmdshell 을 활성화하는 방법은 아래와 같습니다. -- xp_cmdshell 활성화하기 | 0 --> 1 EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO -- xp_cmdshell, show advanced options 값 확인 ==> 1 SELECT [name], [value] FROM [sy.. 2023. 4. 3.
MS SQL | SQL AGENT, Jobs 특정한 시간에 프로시저 실행하기 SQL Server Agent 를 활용하여, Jobs 를 만들어 특정한 시간에 작업을 자동으로 실행할 수 있습니다. SQL Server Agent 를 활용하여 Job 을 만들어보겠습니다. Job에서 실행할 프로시저를 먼저 만들어줍니다. SQL Server Agent --> 마우스 오른쪽 클릭 --> New --> Job 순서로 들어갑니다. General 페이지에서, Job 의 이름을 입력합니다. Description은 선택사항입니다. Steps 단계에서는 실행 순서 단계를 입력합니다. Step 페이지 --> New --> Step name 입력 --> Database 선택 --> Command 입력 --> OK Database 는 Procedure 가 있는, 실제로 실행할 데이터 베이스를 선택합니다. C.. 2023. 3. 31.
MS SQL | SQL server agent 활성화 방법 SQL Server 에이전트🔗 란, MS SQL(이하 'SQL server')에서 jobs 라고 불리는 일을 자동으로 처리할 수 있게 도와주는 Windows 의 Service 입니다. 예를 들어, 데이터베이스를 백업한다거나, 여러가지 작업을 할 수 있습니다. 따라서 SQL server agent 로 많은 일을 자동으로 처리할 수 있습니다. SQL server agent 는 기본으로 비활성화 되어있습니다. SQL Server Agent 를 활성화 해보겠습니다. SQL Server Configuration Manager 를 실행합니다. SQL Server Services --> SQL Server Agent --> 마우스 오른쪽 클릭 --> Start 작업관리자에서 SQLSERVERAGENT 가 실행 중인 .. 2023. 3. 29.
MS SQL | 프로시져 변수에 SELECT 쿼리 값 넣기, 선언, 할당 방법(타입오류) PROCEDURE 를 하다보면, 변수에 쿼리 결괏값을 넣어야 할 때가 있습니다. 이런 메시지가 뜨는 경우가 있을 것입니다. 결국 타입 오류였습니다. INT 로 선언한 변수에 String, VARCHAR 를 넣으려고 했으니 발생한 오류입니다. 문제가 있는 부분을 찾으셨다면, 검색을 안 하셨겠죠. 아래가 올바르게 수정한 것입니다. SET @변수이름 = (SELECT 쿼리); 이런 식으로 하시길 바랍니다. (관련된 글) MS SQL | 프로시저(Procedure) 만들고 실행하는 방법🔗 2023. 3. 28.
MS SQL | 프로시저(Procedure) 만들고 실행하는 방법 프로시저(Procedure)란, 쉽게 생각해서 함수라고 보면 됩니다. SQL에서 사용할 수 있는 함수를 프로시저Procedure라고 볼 수 있습니다. 저장프로시저(Stored Procedure)🔗 만드는 문법은 다음과 같습니다. CREATE PROCEDURE 프로시저이름 AS 명령어 쿼리 GO 실행하는 방법은 다음과 같습니다. EXEC 프로시저이름; 파라미터(Parameter)가 필요하면, 다음과 같이 입력합니다. CREATE PROCEDURE 프로시저이름 @변수이름 변수타입 , @변수이름 변수타입 , … AS 명령어 쿼리 GO 실행 방법은 쉼표(',')로 구분하여 매개변수, 파라미터를 입력합니다. EXEC 프로시저이름 매개변수1, 매개변수2, …; Procedure 내부에서 변수를 선언할 때에는 다음과.. 2023. 3. 27.
MS SQL | 현재 날짜만, 시간만 출력하는 방법 (GETDATE 등) 현재시간을 넣는 방법은 많습니다. (참고: MS SQL | 현재 시간 넣는 함수🔗) 프로시져Procedure 등, 현재시간을 출력하고 싶을 때에 사용하는 방법입니다. SELECT GETDATE(); 를 입력하면 됩니다. 위와 같이 볼 수 있습니다. 만약 날짜만 보고 싶다면, SELECT CONVERT(date, CURRENT_TIMESTAMP); 시간만 보고 싶다면, SELECT CONVERT(time, CURRENT_TIMESTAMP); 을 입력합니다. CURRENT_TIMESTAMP 대신 사용할 수 있는 것들은 다음 링크(MS SQL | 현재 시간 넣는 함수🔗)를 참조합니다. (관련된 글) MS SQL | 현재 시간 넣는 함수🔗 MS SQL | 날짜, 시간 더하기 빼기 방법(DATEADD)🔗 2023. 3. 24.
MS SQL | 숫자 앞 0 채우기, 채우는 방법 이렇게 나오기 때문에 때로는 불편할 수도 있습니다. 앞에 000을 채워서 보기 좋게 만들어 보겠습니다. 1. FORMAT([칼럼1], 'D숫자') 를 활용합니다. D 뒤의 숫자가 자릿수를 의미합니다. 제 생각엔 제일 간단한 방법인 것 같습니다. 2. FORMAT([칼럼1], '000') 을 사용하는 방법 위 방법보다 더 직관적이지만, 0이 많아지면 복잡할 수 있는 방법입니다. 2023. 3. 22.
MS SQL | Sequence, auto_increment 하는 방법 identity Oracle DB 에서는 Sequence, MySQL 에서는 auto_increment, 를 사용하여 숫자를 자동으로 증가시킵니다. MS SQL 에서는 어떤 방법으로 할까요? INDENTITY(초기값, 증가값) 으로 합니다. 초기값은 1, 증가값은 100 으로 했습니다. 따라서, 1, 101, 201, 301, …. 이 될 것입니다. Identity(1,1) 이라고 하면 한번에 1씩 증가할 것입니다. 만들고 난 뒤에 해당 테이블에 Identity를 추가할 수 없습니다. (출처 : Stackoverflow.com🔗) 따라서 테이블을 만들 때에 추가하는 것이 좋겠습니다. 혹은 새로운 칼럼을 추가하는 방법이 있겠습니다. 2023. 3. 17.
MS SQL | CREATE DATABASE IF NOT EXISTS 구현하기 CREATE DATABASE IF NOT EXISTS 는 데이터베이스가 없으면 만들어라는 뜻입니다. Oracle DB에서는 CREATE DATABASE IF NOT EXISTS 데이터베이스이름; 으로 바로 만들 수 있습니다. 하지만 MSSQL 에서는 불가능하더군요. 따라서 구현해보겠습니다. IF NOT EXISTS ( SELECT* FROMsys.databases WHEREname = '데이터베이스이름' ) BEGIN CREATE DATABASE 데이터베이스이름; END; GO 이렇게 하면, 데이터베이스가 없을 때에, 해당 데이터베이스를 만듭니다. (출처) Create database if db does not exist🔗 2023. 3. 15.
728x90
반응형