본문 바로가기

MSSQL7

[MSSQL] Create Table 테이블 생성 템플릿 양식 IF OBJECT_ID('.', 'U') IS NOT NULL DROP TABLE .GO CREATE TABLE .( , , , CONSTRAINT PRIMARY KEY ())GO 2017. 10. 31.
MSSQL 테이블 사용하는 프로시저 찾기 CREATE PROC FIND_PROC@TB_NAME NVARCHAR(100) = NULLASBEGINIF @TB_NAME IS NULLRETURN SELECT B.* FROM SYS.SYSCOMMENTS A, SYS.ALL_OBJECTS BWHERE TEXT LIKE '%' + @TB_NAME + '%'AND A.ID = B.OBJECT_ID ENDGO 사용법 FIND_PROC TABLE_NAME 또는 도구 > 옵션 > 환경 > 키보드 > 쿼리 바로가기 에 등록하여 단축키로 사용하기 (등록 후 새쿼리 창에서 실행해야 함) 2017. 9. 21.
MSSQL TRY CATCH 와 커서 (ERROR 16915) MSSQL에서 오라클로 데이터를 밀어넣는 작업중이었다.MSSQL 프로시져에서 트랜잭션을 유지하려고 TRY... CATCH문을 이용했는데...계속 '커서가 이미 있다'는 에러가 떨어지는 것이었다.커서 사용 문법을 한 백번 정도 쳐다봤는데 이상 없었다. 아무리봐도 맞게 썼다. 그러다 찾았다.이 문제는 이게 어플리케이션(C#) 프로그램이었으면 금방 찾았을 것이다. 어플리케이션에서 try catch시 catch문에 들어가면 오브젝트들 자원해제를 해준다. finally에서 하기도 하고..그것 때문이었다. 열려진 커서가 예외상황이 발생하면서 오픈되채로 catch문으로 들어가 버려서 나는 에러였다.아~~그래서 TRY CATCH문에 아래와 같이 처리했다. BEGIN TRY DECLARE CURSOR CUR FOR .... 2014. 12. 9.
MSSQL 피벗 사용하기 집계 쿼리 시 빈번하게 사용되는 피벗 쿼리MSSQL에서 피벗은 2005버전 이상부터 사용 가능하다. 하위 버전은 case when으로 구현해야 한다. 동적 피벗을 만들어서 사용하기도 하니 알아두도록 하자. -- Pivot table with one row and five columns SELECT 'AverageCost' AS Cost_Sorted_By_Production_Days, [0], [1], [2], [3], [4] FROM (SELECT DaysToManufacture, StandardCost FROM Production.Product) AS SourceTable PIVOT ( AVG(StandardCost) FOR DaysToManufacture IN ([0], [1], [2], [3], [.. 2014. 7. 10.
SQL 테이블 목록 확인 및 특정 컬럼 포함 테이블 보기 테이블을 검색하고 싶을 때 [MSSQL]SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%테이블%' [ORACLE]SELECT * FROM ALL_TABLES WHERE TABLE_NAME LIKE '%대소문자 가림%' 특정컬럼을 포함한 모든 테이블 확인 [MSSQL]--필요한 컬럼만 SELECT 하면 됨 --X_TYPE에 따라 테이블, 뷰 구분할 수 있음SELECT * FROM SYS.all_columns A INNER JOIN SYSOBJECTS B ON A.object_id = B.ID WHERE A.NAME = '컬럼명' [ORACLE]SELECT * FROM COLS WHERE COLUMN_NAME = '컬럼명' 2014. 6. 23.
MSSQL 문자열 잘라서 테이블 반환 함수 ALTER FUNCTION [dbo].[FN_SPLIT]( @StrValue VARCHAR(MAX), -- 분리할 문자열 @SplitChar VARCHAR(1) -- 구분할 문자) RETURNS @SPLIT_TEMP TABLE ( VALUE VARCHAR(50) )AS BEGIN DECLARE @oPos INT, @nPos INT DECLARE @TmpVar VARCHAR(1000) -- 분리된 문자열 임시 저장변수 SET @oPos = 1 -- 구분문자 검색을 시작할 위치 SET @nPos = 1 -- 구분문자 위치 WHILE (@nPos > 0) BEGIN SET @nPos = CHARINDEX(@SplitChar, @StrValue, @oPos ) IF @nPos = 0 SET @TmpVar = R.. 2013. 4. 24.
[MSSQL] DB에 속한 테이블명 알아내기 MSSQL에서 DB안에 속한 테이블명 알아내는 쿼리.use pubs select * from information_schema.tables 그러면 테이블의 스키마(필드구조)를 보고 싶다면?select * from information_schema.columns where table_name='titleauthor' 2011. 1. 3.