전체 글 54

[SQL Server / MS-SQL] Error - An explicit value for the identity column in table 'POST' can only be specified when a column list is used and IDENTITY_INSERT is ON.

Msg 8101, Level 16, State 1, Line 12An explicit value for the identity column in table 'POST' can only be specified when a column list is used and IDENTITY_INSERT is ON.   위 오류는 identity 속성이 적용된 테이블에 insert 를 하려고 할 때 발생하는 오류이다.identity 은 자동으로 값을 늘려주는 기능으로 identity 로 설정한 컬럼은 insert 마다 자동으로 값이 증가한다. 그런데 내가 만약 identity 값을 지정하고 싶을 때, identity 컬럼에 값을 직접 넣어주면위와 같은 오류가 발생한다. 예를 들어,컬럼 S..

[SQL Server / MS-SQL] Error - Arithmetic overflow error converting expression to data type int.

SELECT SUM(gold) FROM bank Msg 8115, Level 16, State 2, Line 39 Arithmetic overflow error converting expression to data type int.  데이터타입이 int 인 컬럼의 모든 합 (sum) 을 구하다가 int 타입의 최대 크기를 초과해서 발생하는 오류메시지이다.이를 해결하기 위해서 데이터타입을 더 크게 바꿔주어야 한다.   SELECT SUM(CAST(gold AS bigint)) FROM bank 위와 같이 int 타입의 형식을 bigint 로 변경해주면 해결!

[SQL Server / MS-SQL] 특정컬럼이 포함된 테이블 조회

수많은 테이블을 가지고 있는 데이터베이스에서 원하는 컬럼이 포함된 테이블들만 조회하고 싶을 때,아래의 시스템 테이블들을 이용하여 조회할 수 있다.1234SELECT a.name AS 테이블명, b.name AS 컬럼명  FROM sys.tables a INNER JOIN sys.columns b ON a.object_id = b.object_id  WHERE b.name = '원하는컬럼명' cs    예를 들어 보자.bank 라는 데이터베이스에서 gold 라는 컬럼을 가진 테이블을 모두 조회하고 싶다.이럴 경우 아래와 같이 조회 할 수 있다.12345678-- bank 데이터베이스로 이동 USE ba..

[SQL Server / MS-SQL] Windows7 - SQL Server 2016 / 2017 설치 안됨 (불가)

윈도우7 인 내 PC 에서 Microsoft SQL Server 2017 을 설치하려고 했더니 아래와 같은 메세지가 노출되었다.   처음엔 내 PC 사양이 문제인지 알았는데알고보니 SQL Server 2016 부터 윈도우7 이 지원되지 않는다고 한다.SQL Server 2017 역시 윈도우7 을 지원하지 않는다. (윈도우8 부터 지원) SQL Server 2016 이나 SQL Server 2017 을 사용하기 위해서는윈도우8 이상으로 OS 를 업그레이드하거나 Virtual Machine 을 통해 리눅스버전을 이용해야 할 것 같다.    * Docs 참고https://docs.microsoft.com/en-us/sql/sql-server/install/hardwar..