我为什么要在sybase中使用GO命令?

pri*_*orb 5 sql t-sql sybase-ase

GO为sybase编写sql时我为什么要使用?在我的项目的大多数现有sql中,没有GO,但是当为表创建生成DDL时,作为示例,应用程序插入许多GO语句.

感谢答案,我理解这GO;其他数据库类似,因为人们已经有人指出它是一个分隔符.

另外一个问题是GO,sybase是否完全等同于;在Oracle中输入?

Stu*_*rth 11

这是一个批处理分隔符. GO用于告诉引擎GO在批处理后将所有单词作为新命令处理.

CREATE PROC usp_blah as ...
GO

CREATE some-otherproc as ...
GO
Run Code Online (Sandbox Code Playgroud)

如果没有GO,优化器会在第二个CREATE语句中抛出错误


Bra*_*ore 5

相比:

    Do something
    GO
    Do something else
    Go
Run Code Online (Sandbox Code Playgroud)

到:

    Do something
    Do something else
Run Code Online (Sandbox Code Playgroud)

如果在第一个示例中的“做某事”期间出现错误,则“做其他事”仍将运行。在第二个示例中不是这种情况。正如 Stuart 指出的那样,有些操作必须是批处理的第一条语句,这意味着您必须将 GO 放在它们之前,除非它们是文件的第一行。