我正在尝试准备将定期触发的sql脚本,并且在MS SQL Server Enterprise版上的行为将与其他脚本不同。我知道我可以通过以下方式检查版本:
SELECT SERVERPROPERTY('edition')
所以我认为它可以像这样工作:
IF EXISTS
(SELECT SERVERPROPERTY('edition') as edition WHERE edition LIKE '%Enterprise')
BEGIN
print 'script for enterprise edition'
END
ELSE
BEGIN
print 'script for other verisons'
END
但我无法在WHERE子句中引用字段别名,并收到错误“无效的列名'edition'。”,因此我尝试使用CTE:
WITH Test AS (SELECT SERVERPROPERTY('edition') as edition)
SELECT * FROM Test WHERE edition LIKE '%Enterprise'
但它也不起作用(“参数数据类型sql_variant对于同类函数的参数1无效。”)
您对如何实现依赖版本的行为有任何建议吗?
这是支票:
if (cast(serverproperty('edition') as varchar) like '%enterprise%')
print 'script for enterprise edition'
else
print 'script for other verisons'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句