coding/mssql 31

여러 행의 컬럼을 합치는 방법 (STUFF, FOR XML PATH)

https://gent.tistory.com/344 [MSSQL] 여러 행의 컬럼을 합치는 방법 (STUFF, FOR XML PATH) SQL Server에서 여러 행(Row)의 컬럼 값을 하나로 합치기 위해서는 STUFF 함수와 FOR XML PATH 구문을 사용하면 된다. 오라클 SQL에서 XMLAGG, WM_CONCAT, LISTAGG 함수와 비슷한 기능을 수행한다. SQL Server 20.. gent.tistory.com ALTER FUNCTION [dbo].[UFN_GetShowColumnName] --db,table 로 colmetadata 조회 ( @DBNAME nvarchar(50), @TABLENM nvarchar(50) ) RETURNS nvarchar(200) AS BEGIN dec..

coding/mssql 2022.02.16

mssql 이 플랫폼에서 패키지를 만들 때는 외부 참조가 지원되지 않습니다.

mssql 이 플랫폼에서 패키지를 만들 때는 외부 참조가 지원되지 않습니다. -> 이 경우는 데이터 애플리케이션 내보내기가 아닌, db 백업 후, 백업 파일을 이용해서 복원하는 방식을 사용해야 한다. 왜나면 현재 함수 및 프로시저에서, 현재 db뿐만 아니라 다른 곳에 위치한 db도 있어서, 애플리케이션으로 내보내려면, 함수와 프로시저를 다 삭제해야 함. 제목: Microsoft SQL Server Management Studio ------------------------------ 데이터 패키지의 파트로 사용된 스키마에 지원되지 않는 요소가 하나 이상 있습니다. Error SQL71562: 요소 [dbo].[USP_UPDATE_STAT_DG_INFO_BY_CANCER_TYPE]을(를) 확인하는 동안 오..

coding/mssql 2022.01.18

MS SQL - 트랜잭션 로그가 'LOG_BACKUP'(으)로 인해 꽉 찼습니다.

-- 로그 정보확인 DBCC SQLPERF(LOGSPACE) EXEC SP_HELPFILE SELECT * FROM SYSFILES -- 데이터베이스 복구 모델을 SIMPLE로 설정하여 파일을 자름 ALTER DATABASE [데이터베이스명] SET RECOVERY SIMPLE; -- 트랜잭션 로그파일을 최소의 단위로 축소 DBCC SHRINKFILE ([데이터베이스 로그명], TRUNCATEONLY); -- 데이터베이스 복구 모델을 FULL로 설정 ALTER DATABASE [데이터베이스명] SET RECOVERY FULL; 출처: https://trustit.tistory.com/23 [FreshCrush, Developer]

coding/mssql 2022.01.06

MDF, LDF 파일이란(mssql 확장자)

MDF 파일 - 데이터베이스가 저장되는 파일이다. 이 파일에 데이터베이스가 들어있으며 작동중에는 파일을 지우거나 변경, 복사할 수 없다. LDF 파일 - 데이터베이스의 로그가 저장되는 파일이다. 로그에도 종류는 많다만 이중에서 주목해야 할 로그는 트렌잭션 로그(Transaction log) 다. 데이터베이스에서 충돌이나 하드웨어 고장이 었었다고해도 DBMS의 조작이력이나 데이터의 사용에 대한 이력을 볼 수 있다. MS-SQL에서 사용되며 주기적으로 백업을하여 만들어지는 .bak 파일로 뒤틀리거나 사라진 파일을 복구할 수 있다. 관련 내용은 이 포스팅 참조! -> MSSQL DB 백업, DB복원 bak 파일로 시도해보자 만약 bak 파일이 없다면 LDF 파일을 이용하여 원하는 시점으로 돌아갈 수는 있다. ..

coding/mssql 2022.01.03

NOLOCK

MSSQL 은 기본적으로 SELECT 시 공유잠금(S Lock) 이 걸린다. 이는 MSSQL 의 기본 격리수준(Isolation Level) 이 Read Committed 이기 때문이다. 즉, DML(INSERT, UPDATE, DELETE) 작업중인 ROW 또는 TABLE 에 SELECT 할 경우, 해당 작업이 끝나야 SELECT 할 수 있다는 의미이다. 만일 이렇게 수행된다면 DB의 성능은 떨어지고, 데드락(Deadlock) 이 발생될 수 있다. 이를 방지하기 위해 WITH(NOLOCK) 을 사용할 수 있다. WITH(NOLOCK) 의 격리수준(Isolation Level)은 Read Uncommitted 와 같다고 보면 된다. 즉, SELECT 할 ROW 또는 TABLE 이 잠겨있어도(작업중이여도)..

coding/mssql 2021.12.28

mssql 테이블 복사 및 데이터 복사

1. 테이블의 생성과 동시에 데이터까지 모두 복사하는 방법 SELECT * INTO [생성할 테이블명 ] FROM [원본 테이블명] 기본적으로 테이블과 동시에 데이터까지 복사하는 방법이다. 2. 테이블을 생성할 때 원하는 컬럼만 복사하는 방법 SELECT [원하는 컬럼명] INTO [생성할 테이블명 ] FROM [원본 테이블명] 내가 원하는 컬럼만 복사하여 테이블을 만들때 간단하게 해결이 가능하다. 3. 테이블을 생성할 때 테이블 구조만 복사하는 방법 SELECT * INTO [생성할 테이블명 ] FROM [원본 테이블명] WHERE 1=2 테이블을 복사할 때 테이블에서 테이터는 없이 테이블 구조만 복사할 때는 'WHERE 1=2'와 같은 쿼리를 실해시키면 테이블의 구조만 복사할 수 있다. 4. 테이블은..

coding/mssql 2021.12.15