Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wann muss ich Begin/End-Blöcke und das Go-Schlüsselwort in SQL Server verwenden?

GO ist wie das Ende eines Skripts.

Sie könnten mehrere CREATE TABLE-Anweisungen haben, die durch GO getrennt sind. Es ist eine Möglichkeit, einen Teil des Skripts von einem anderen zu isolieren, aber alles in einem Block einzureichen.


BEGIN und END sind genau wie { und } in C/++/#, Java usw.

Sie banden einen logischen Codeblock. Ich neige dazu, BEGIN und END am Anfang und am Ende einer gespeicherten Prozedur zu verwenden, aber es ist dort nicht unbedingt erforderlich. Wo es notwendig ist, sind For-Schleifen und IF-Anweisungen usw., wo Sie mehr als einen Schritt benötigen ...

IF EXISTS (SELECT * FROM my_table WHERE id = @id)
BEGIN
   INSERT INTO Log SELECT @id, 'deleted'
   DELETE my_table WHERE id = @id
END