create table select

IT/DB 2025. 1. 7. 10:55
반응형

oracle

create table create_table_name as
select * from select_table_name

 

mssql

SELECT * INTO create_table_name FROM  (SELECT * FROM selcet_table_name)A

 

mysql

CREATE TABLE create_table_name AS
SELECT * FROM select_table_name
반응형
Posted by 투명강아지
,
반응형

이번에 다른 DB로 쿼리를 변환 해야 하는 일이 생겼다.

이 무식한 짓을 하려고 별의 별 구상을 다하던 중 툴이 있지 않을까 하고 검색해 보았다.

 

그래서 발견하게된 "sqlines" 진짜 잘 되려나 싶어 테스트를 해보았다.

온라인 에서 단순 쿼리만 변경 할 수도 있고 로컬에서 특정 쿼리만 또는 sql파일 자체를 변환 할 수 있었다.

 

온라인 방법
좌측에 입력 후 변환을 할 수 있다

 

 

오프라인 방법은 우선 해당 툴을 다운 받아준다.

다운로드

 

 

다운 후 압축을 풀면 3가지 버전이 나오게 된다.

 

1. 콘솔에서 특정 쿼리만 변경

 

 

2.프로그램으로 특정 쿼리 변환하기

 

 

 

3. 폴더에 들어있는 쿼리 변경하기

 

폴더의 경우 경로 설정을 \\\ 등으로 설정할 경우 하단의 모든 폴더의 쿼리를 찾아 변경하는것을 확인했다.

물론 변환 폴더에 동일한 경로로 폴더까지 자동 생성하였다.

반응형
Posted by 투명강아지
,
반응형

계정 생성 및 권한을 줄때 에러가 발생 된다.

 

보안개체의 사용자 생성 시 각 데이터 베이스의 사용자또한 함께 만들어 지기 때문인대

이대 스크립트를 보면

create "userid" for login "database" 를 하고 grant 작업이 진행이 되면서 각 DB에 사용자를 다시 만들기 때문이다

 

이때 발생 에러메세지로

제목: Microsoft SQL Server Management Studio "USERID"사용자 'DATABASE'에 대한 만들기이(가) 실패했습니다. (Microsoft.SqlServer.Smo)
추가 정보: Transact-SQL 문 또는 일괄 처리를 실행하는 동안 예외가 발생했습니다.(Microsoft.SqlServer.ConnectionInfo)
현재 데이터베이스에 사용자, 그룹 또는 역할 'GRANT'이(가) 이미 있습니다. (Microsoft SQL Server, 오류: 15023) 

 

각 DB의 사용자를 보게되면 사용자는 생성 되었지만 권한이 전부 빠져있을 것이다.

 

해결방법으로는 시스템으로 자동 보정을 해 주면 된다.

 

EXEC sp_change_users_login 'Auto_Fix', 'USERID'

 

위 명령어를 각 DB에 접속하여 보정해 준다.

반응형
Posted by 투명강아지
,