如果T-SQL脚本在Azure SQL数据库或内部部署中运行,它应该如何检测?

Aak*_*shM 3 t-sql sql-server azure azure-sql-database

假设我有一块T-SQL可以在Azure SQL数据库和内部部署SQL Server上进行各种运行.如何在脚本本身中以编程方式检测哪些是主要的上下文?

我注意到了

SELECT @@VERSION
Run Code Online (Sandbox Code Playgroud)

在Azure SQL数据库上生成一个启动的字符串

Microsoft SQL Azure 
Run Code Online (Sandbox Code Playgroud)

但解析输出@@VERSION并不能产生美好的感觉,当然细节可能会随时改变.

有没有更明显正确的方法呢?

Edw*_*r V 8

SELECT SERVERPROPERTY ('edition') 
Run Code Online (Sandbox Code Playgroud)

也可以检查一下,当它不是SQL Azure你知道它的前提.