본문 바로가기

[SQL] 컬럼 속성 변경 ms-sqlserver에서 table 또는 필드 속성변경은 alter문을 사용하여 합니다. alter table table명 alter column 필드명 datatype ex) test table의 fld필드를 varchar -> int로 변경 alter table test alter column fld int 참고) 실제 입력 되어있는 자료중 int형식으로 변경할 수 없는 경우 (''aaa''값과 같이)에는 sqlserver는 에러를 냅니다. alter table table명 add 필드명 datatype ex) test table의 fld1을 varchar 데이타타입 8자리로 추가하는 경우 alter table test add fl.. 더보기
[SQL] 트랜젝션 롤백 오류대응 방안 저장 프로시저를 작성하고 테스트 하던중 첫 에러가 발생하여 ROLLBACK이 일어나던 중 예정된 에러 메시지가 아니라. "EXECUTE 후 트랜잭션 개수는 COMMIT 또는 ROLLBACK TRANSACTION 문이 없음을 나타냅니다" 와 같은 문구가 나타났다. 해결 방법은 예외 상황에서 IF @@TRANCOUNT > 0 BEGIN ROLLBACK TRAN END 와 같이 ROLLBACK을 감싸 주면 해결된다. 더보기
[SQL] SET XACT_ABORT ON의 의미 Transact-SQL 문에서 런타임 오류가 발생할 경우 SQL Server에서 현재 트랜잭션을 자동으로 롤백할 것인지 여부를 지정 CREATE PROC [dbo].[SP_TEMP] @ID INTAS SET NOCOUNT ONSET LOCK_TIMEOUT 60000SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTEDSET XACT_ABORT ON -- 이런 식으로 추가됨. IF (@ID IS NULL ) RETURN -1 BEGIN TRY BEGIN TRAN .... 본문 생략.... 더보기
[Oracle Database] MSSQL 날짜 변환 오라클에서는 TO_CHAR()을 사용해서 문자열로 변환이 가능했다. 상당히 유용하며,날짜를 변환할때 많이 사용했었다. TO_CHAR(SYSDATE,'YYYY-MM-DD') -> 2013-01-14TO_CHAR(SYSDATE,'YYYY/MM/DD') -> 2013/01/14 TO_CHAR(SYSDATE,'YYYYMMDD') -> 20130114 MSSQL에서는 CONVERT(VARCHAR(10),GETDATE(),120) -> 2013-01-23 CONVERT(VARCHAR(10),GETDATE(),111) -> 2003/01/23 CONVERT(VARCHAR(8),GETDATE(),112) -> 20030123 와 같이 사용할 수 있다. 120, 111, 112은 날짜 표현으로 위와 같은 방식으로 날짜를.. 더보기
[SQL] ISNULL()함수 사용법 NULL을 지정된 값으로 변환한다. 지난 번에 Oracle에서 이와 같은 기능을 하는 NVL을설명한 적이 있는데, NVL과 동일한 기능을 수행하는 SQL 함수가 ISNULL 이다. SQL Server에서는 ISNULL ( check_expression , replacement_value ) Oracle에서는 NVL ( check_expression , replacement_value ) [출처] SQL 함수의 모든것 3- 변환 함수(ISNULL / NVL) |작성자 사랑지기 참고로 ISNULL도 뷰가 존재하지 않는 대상에 대해서는 0으로 값을 치환하지 못하기 때문에,ISNULL(MAX(컬럼), 0) 과 같이 집계함수를 같이 사용하면 없는 값에 대해서 뷰를 만들어 반환을가능하게 해준다. 집계함수의 사용은 .. 더보기