我可以做如下的事情吗,请告诉我 IF @parameter=1 BEGIN ...查询... END IF @parameter=2 如果可能的话,需要正确的语法。 这是 OLE DB 连接。 不是存储过程。只是一个sql查询
最佳答案
DECLARE @param AS INT = ?;
IF @param = 1
BEGIN
SELECT 1 AS Y;
END
ELSE IF @param = 2
BEGIN
SELECT 2 AS Y;
END
您的查询中有两个问号,并且您可能只传递了一个变量。我见过开发人员两次(或多次)传递相同值的代码。这是低效的。更好的方法是接收 SSIS 变量中传递的参数。优点: 1. 一个值只需传递一次。 2. 更重要的是,如果您更改传递的参数在 sql 中的使用顺序,则无需在执行 SQL 任务编辑器//参数的用户界面上更改它们的顺序。这是安迪·伦纳德后来在回应中提出的建议。
关于SSIS根据参数执行SQL任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17428666/