2

GO コマンドについて読んだことがありますが、次の質問に対する明確な回答がありません。

SSMS から次の一連のコマンドを実行するとします。

INSERT INTO [dbo].[hwr] ([wr_id]) VALUES (990017882)
INSERT INTO [dbo].[hwr] ([wr_id]) VALUES (990017883)
INSERT INTO [dbo].[hwr] ([wr_id]) VALUES (990017884)
INSERT INTO [dbo].[hwr] ([wr_id]) VALUES (990017885)

これは以下とどのように異なりますか:

INSERT INTO [dbo].[hwr] ([wr_id]) VALUES (990017882)
GO
INSERT INTO [dbo].[hwr] ([wr_id]) VALUES (990017883)
GO
INSERT INTO [dbo].[hwr] ([wr_id]) VALUES (990017884)
GO
INSERT INTO [dbo].[hwr] ([wr_id]) VALUES (990017885)
GO

言い換えれば、「GO」コマンドは実際にこの状況で何かを成し遂げているのでしょうか? もしそうなら、何?

どうもありがとう、マット

4

2 に答える 2

3

このGOコマンドは実際には SQL コマンドではなく、SSMS コマンドです。前のコマンドをバッチとして送信するように SSMS に指示します。

したがって、違いは、最初のコードはすべてを一度に送信するのに対し、2 番目のコードは 4 つのバッチで送信することです。

于 2013-07-01T19:14:38.407 に答える
3

GO はバッチ区切りです

特定の操作では、たとえば、バッチの最初の行にする必要があります (CREATE PROCEDURE)。GO を使用すると、すべてのコマンドを 1 つのファイルにまとめることができます。

また、独自のバッチ内にある場合は、同じ変数を宣言できます

declare @i int = 5
select @i
go
declare @i int = 5
select @i
go

ゴーを出せば爆発する

GO の後に数字を追加することもできます。これにより、その回数だけバッチが実行されます。例

declare @i int = 5
select @i
go 4
于 2013-07-01T19:15:19.223 に答える