动态sql查询不起作用。 EXEC附近的Sytnax错误

时间:2016-10-25 15:49:55

标签: sql-server tsql dynamic-sql

嘿所以我在工作中遇到了一个问题,我遇到了困难。我试图只加入一个表,只有当某个值等于1.现在我不能在这方面使用大小写,因为它返回标量值。所以我留下了使用动态sql的情况。但是我需要在select语句中执行代码,但是我无法做到这一点,我想知道有人能指出我的方式吗?

因此,假设此代码位于select语句中

      ISNULL(c.Name, (EXEC @sql) as courseName,

这就在它之前

SET @isSelectAll = CASE 
                      WHEN EXISTS (SELECT 1 FROM @coursesectionID csec WHERE csec.Id = -1) 
                      THEN  1
                      ELSE 0
                   END  

SET @sql = CASE WHEN @isSelectAll = 0 
                THEN
                ' SELECT TOP 1 c.Name 
                  from SCS_Course c 
                  INNER JOIN SCS_CourseSection cs 
                     on c.CoursePk = cs.CourseFk    
                  where cs.CourseFk = 
                     (Select cs.CourseFk 
                      from SCS_CourseSection cs     
                      INNER JOIN    @coursesectionID csec 
                              on cs.CourseFk = csec.id 
                      where cs.CourseSectionPk =   csec.id)' 
              ELSE 'SELECT TOP 1 FROM SCSBoard'
            END

这只是代码演示我的问题的一个示例,我收到一条错误消息,说EXEC附近的语法不正确。

我想知道为什么我不允许在这里执行不同的查询,如果有人有这个问题的解决方案?非常感谢

0 个答案:

没有答案