본문 바로가기

728x90
반응형

MSSQL

(25)
[MSSQL] 탭문자 제거 - 조회 조회된 데이터를 엑셀로 출력하기 위해서 파싱을 하게 되는데, 데이터에 탭문자가 들어가게 되면 탭문자로 인해 데이터가 밀려서 파싱되어 제대로된 엑셀 파일이 출력이 안된다. 그러할 경우 탭문자를 replace해서 출력한 후 파싱하도록 하자. ex ) select replace(col1, char(9),'') as col1 from table
[MSSQL] DB 논리적 파일이름 변경 하기. 논리적 파일이름 SSMS에서 수정하려는 DB 선택 후 -> 우측 마우스 클릭 -> [속성] -> [파일] 선택 행 데이터, 로그의 논리적 이름 칸에 원하는 이름을 입력한다. 입력 후 하단 확인 버튼 클릭하면 적용된다. sp_helpdb 'DB명' 실행시키면 해당 DB에 대한 변경된 논리적 이름, 물리적 이름 ,DB 사이즈등을 확인할 수 있다.
[MSSQL] select - insert 예시 A라는 DB 테이블 a에 B라는 DB의 테이블 b의 데이터를 그대로 가져 오려고 한다. 그러할 경우 b에서 조회된(select 문) 사항을 a에 입력(insert into )한다. SET IDENTITY_INSERT a ON -- 고유 키값이 자동 증가값으로 적용되어 있다면 일시 해제 한다. insert into a (col1,col2,col3,col4,col5) select col1,col2,col3,col4,col5 from B.dbo.b SET IDENTITY_INSERT a OFF -- 자동 증가값이 일시 해제사항을 원래대로 복구한다.
[MSSQL] DB 복원 후 계정 충돌- EXEC SP_CHANGE_USERS_LOGIN DB를 복원 후 해당 DB에 매핑되었던 계정을 동일하게 만들려고 하면 에러가 나는 경우가 있다. 이유는 전에 사용되던 계정과 다시 만든 계정이 동일하게 여기지 않기 때문이다. 이러한 경우 프로시저를 실행하면 간단히 해결된다. 새로 만든 동일한 이름의 계정이 이전에 사용하던 계정과 동일하다고 여기게 하는 것이다. 예) '계정1'이라는 EXEC SP_CHANGE_USERS_LOGIN 'UPDATE_ONE', '계정1', '계정1' 참고로 ALTER USER '계정1' WITH LOGIN='계정1' SP_CHANGE_USERS_LOGIN 과 동일한기능 제공 EXEC sp_change_users_login 'report' 프로시저는 현재 어떤 DB와도 연결되어있지 않은 계정정보를 보여준다. select name..
[MSSQL] DB 신규 생성하기 Microsoft SQL Server Management Studio에서 DB를 신규로 생성하는 과정은 다음과 같다. 1. [데이터베이스] 마우스 오른쪽 클릭 -> [새 데이터베이스]를 선택합니다. 2. 데이터베이스 이름(N): 칸에 신규로 생성할 DB명을 입력한다. 아래 경로 등은 자동으로 입력된다. ( 물론 다른 이름으로 입력 가능 하다. ) 아래 확인 버튼을 클릭하면 DB가 신규로 생성된다. 3. 생성된 신규 DB는 아래 DB 목록에 나타난다.
[MSSQL] 새로운 DB에 기존 백업파일로 복원하기 신규로 DB를 만든후 기존의 백업파일(.bak) 으로 복원하려 하는데 에러가(오류:3154 ) 발생하는 경우가 있다. 파일 및 파일 그룹 복원은 백업된 원래 데이터베이스의 특정 파일 및 파일 그룹만 백업하게 되는데 그렇게 되면 특정 파일 및 파일 그룹외의 나머지 파일 및 파일 그룹은 복원이 안되게 되므로 에러가 발생한다. 그러므로 복원시 해당 데이터베이스 전체를 복원해야한다. 방법은 다음과 같다.
[MSSQL] SSMS에서 테이블 디자인 변경 안되는 경우 방법 SSMS (SQL Server Management Studio )에서 테이블 - 디자인에서 테이블 속성을 변경하구 저장이 안되는 경우가 다음과 같은 에러 메시지 나온다. 위와 같은경우 SSMS - 도구 - 옵션 - 디자인너에서 테이블을 다시 만들어야 하는 변경 내용 저장 안함(S) 체크 박스 해제한 후 다시 해보면 변경된 속성을 적용 할 수 있다.
[MSSQL] @@IDENTITY 사용해서 INSERT 후 자동증가값 받아오기 INSERT 쿼리 실행 후 증가된 자동증가값을 @@IDENTITY를 통해서 확인할 수 있다. 예) sql = " SET NOCOUNT ON insert into [HEAD_TABLE] values ( col1, col2, col3 ) select @@IDENTITY " Set result = Dbcon.execute(sql) no = result(0) // SET NOCOUNT ON을 붙이지 않으면 result(0)값을 제대로 못읽어 온다. // SET NOCOUNT ON은 쿼리문 또는 프로시저의 영향을 받은 행 수를 표시하는 메시지를 // 반환하지 않도록 하는것 이다. insert into [DEATAIL_TABLE] values ( no , col4, col5 )

728x90