2011-07-07 102 views
2

为了向后兼容,我需要在sql server 2005和sql server 2008上都有一个存储过程。但是由于在sql server 2008中不推荐使用某些命令我的脚本编译在2005年,但在2008年失败。我正在寻找C#,C#相当于#define,#ifdef,所以我可以编译2005年相同的脚本& 2008.这是什么标准的做法?附加的屏幕截图详细解释。谢谢#ifdef在T-SQL sql server中的条件编译2008 2005

enter image description here

回答

3

使用动态SQL:

if (@returnVal = 1) 
    exec ('backup log myDB with truncate_only'); 
+0

誓言。不知道这很简单。这是t-sql世界中用于条件编译的标准做法。谢谢 – Gullu

+0

@Gullu:单个SP支持两个版本的SQL Server是非常不寻常的。标准做法是为每个SQL Server版本部署一个单独的SP。 – Andomar