development

SQL Server Management Studio 및 Transact SQL에서 GO를 사용하는 것은 무엇입니까?

big-blog 2020. 3. 4. 07:53
반응형

SQL Server Management Studio 및 Transact SQL에서 GO를 사용하는 것은 무엇입니까?


SQL Server Management Studio는 마우스 오른쪽 단추로 "다른 이름으로 스크립트"메뉴를 사용하여 쿼리를 만들 때 항상 GO 명령을 삽입합니다. 왜? GO는 실제로 무엇을합니까?


배치 종결 자이지만 원하는대로 변경할 수 있습니다. 대체 텍스트


Management Studio 2005부터 다음 GO과 같은 int매개 변수 와 함께 사용할 수 있습니다 .

INSERT INTO mytable DEFAULT VALUES
GO 10

위의에 10 개의 행이 삽입됩니다 mytable. 일반적으로 말하면 GO관련 SQL 명령 n시간을 실행합니다 .


GO 명령은 Transact-SQL 문이 아니지만 SQL Server Management Studio 코드 편집기를 비롯한 여러 MS 유틸리티에서 인식되는 특수 명령입니다.

GO 명령은 SQL 명령을 배치로 그룹화하여 서버로 함께 전송하는 데 사용됩니다. 배치에 포함 된 명령, 즉 마지막 GO 명령 또는 세션 시작 이후의 명령 세트는 논리적으로 일관성이 있어야합니다. 예를 들어 변수의 범위가 정의 된 배치로 제한되므로 한 배치에서 변수를 정의한 다음 다른 배치에서 사용할 수 없습니다.

자세한 내용은 http://msdn.microsoft.com/en-us/library/ms188037.aspx를 참조 하십시오 .


GO는 SQL 키워드가 아닙니다.

SSMS와 같은 클라이언트 도구가 전체 스크립트를 일괄 처리하기 위해 사용하는 배치 구분 기호입니다.

여러 번 대답하기 ... 예 1


기존 답변에 추가하기 위해보기를 만들 때을 사용하여 이러한 명령을 일괄 처리로 분리해야합니다 go. 그렇지 않으면 오류가 발생 'CREATE VIEW' must be the only statement in the batch합니다. 예를 들어, 다음 SQL 스크립트를 실행하지 않으면 다음과 같은 SQL 스크립트를 실행할 수 없습니다.go

create view MyView1 as
select Id,Name from table1
go
create view MyView2 as
select Id,Name from table1
go

select * from MyView1
select * from MyView2

Use herDatabase
GO ; 

코드는 GO마커 위의 명령을 실행하라는 메시지를 표시합니다. 내 기본 데이터베이스는 myDatabase이므로 herDatabase를 사용 myDatabase GO하고 현재 쿼리를 사용하는 대신


Go는 이전 및 이후 GO 이후에 작성된 모든 SQL 문이 처리를 위해 SQL Server로 이동 함을 의미합니다.

Select * from employees;
GO    -- GO 1

update employees set empID=21 where empCode=123;
GO    -- GO 2

위의 예에서 GO 1 이전의 명령문은 배치에서 sql 서버로 이동 한 다음 GO 2 이전의 다른 명령문은 다른 배치에서 SQL Server로 이동합니다. 보시다시피 배치가 분리되었습니다.


여기 GO의 마법이 있습니다.

SELECT 'Go'
Go 10

신택스 : INT(BatchNumber)

배치 번호 : 발생 횟수 없음

더 깊이 코딩하면 스파게티로 이어질 수 있습니다 .

참고 URL : https://stackoverflow.com/questions/2299249/what-is-the-use-of-go-in-sql-server-management-studio-transact-sql



반응형