消息102,级别15,状态1,第34行'附近的语法不正确。

跳汰机

我在执行以下查询时遇到上述错误,这是存储过程命令行执行

exec sp_Bind_Division_Store_Camera_On_Filter_In_Liveview 
     null, null, null, null

存储过程如下

ALTER PROCEDURE [dbo].[sp_Bind_Division_Store_Camera_On_Filter_In_Liveview]
    @division varchar(45),
    @store varchar(45),
    @camera varchar(68),
    @group varchar(100)
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
        DECLARE 
            @BaseQuery nvarchar(max) =  'select 
                                            distinct tblcameradetails.name as CameraName,
                                            tblcameradetails.IsDeviceEnabled, 
                                            tblcameradetails.cameraID, 
                                            tblcameradetails.deviceIP, 
                                            tblmediasourcedetails.StreamName, 
                                            tblmediasourcedetails.streamID, 
                                            tblcameradetails.Model_ID, 
                                            tblcameradetails.IsHidden, 
                                            tblcameradetails.hasPTZcapability,
                                            tblcameradetails.CameraModelNo, 
                                            tblcameradetails.username as CameraUserName,
                                            tblcameradetails.hasPTZCycle,
                                            tblcameradetails.hasPreset, 
                                            tblcameradetails.password as CameraPassword, 
                                            tblmediasourcedetails.isRecordingStarted as IsRecordingOn, 
                                            tblcameradetails.IsCovert, 
                                            tblcameradetails.constCameraName, 
                                            tblmediasourcedetails.constStreamName,
                                            tblstoredetails.Store_ID,
                                            tblsystemlocationdetails.division,
                                            tblstoredetails.Store_Name,
                                            tblstoredetails.Store_IP,
                                            tblstoreconfiguration.Liveview_Session_Timeout  
                                        from 
                                            tblmediasourcedetails, 
                                            tblcameradetails, 
                                            tblcameragroupdetails, 
                                            tblgroupdetails, 
                                            tblvssaddsourcedetails,
                                            tblsystemlocationdetails,
                                            tblstoredetails,
                                            tblstoreconfiguration'

    ,   @ParamList nvarchar(max) = N'@p1 varchar(45), @p2 varchar(45), @p3 varchar(68), @p4 varchar(100)'
    ,   @WhereClause nvarchar(max) = N'where 
                                            tblmediasourcedetails.cameraID=tblcameradetails.cameraID 
                                            and tblmediasourcedetails.streamID=tblvssaddsourcedetails.streamID 
                                            and tblcameradetails.cameraID = tblcameragroupdetails.cameraID 
                                            and tblcameragroupdetails.groupID=tblgroupdetails.groupID
                                            and tblstoredetails.Store_ID= tblcameradetails.Store_ID
                                            and tblsystemlocationdetails.Store_ID= tblstoredetails.Store_ID
                                            and tblstoredetails.Store_ID=tblstoreconfiguration.Store_ID and 1=1'
    ,   @OrderByClause nvarchar(100) = 'order by CameraName';

        IF @division IS NOT NULL
        BEGIN
            SET @WhereClause = @WhereClause + ' and division like (@p1)';
        END

        IF @store IS NOT NULL
        BEGIN
            SET @WhereClause = @WhereClause + ' and (store like (@p2))';
        END

        IF @camera IS NOT NULL
        BEGIN
            SET @WhereClause = @WhereClause + ' and tblcameradetails.name like (@p3)';
        END

        IF @group IS NOT NULL
        BEGIN
            SET @WhereClause = @WhereClause + ' and tblgroupdetails.name in (@p4)';
        END

        SET @BaseQuery = @BaseQuery + @WhereClause + @OrderByClause;

        EXECUTE sp_executesql @BaseQuery, @ParamList, @p1 = @division, @p2 = @store, @p3 = @camera, @p4 = @group;

END

现在,错误向我显示第34行在“。”附近的语法处有错误,但我没有发现任何问题,因为我在存储过程中使用的查询表单命令提示符运行得非常好,因此会引发错误。请帮我解决这个问题。

乌海

您可以轻松地打印变量@BaseQuery以检查结果查询。

变量中的查询@BaseQuery如下所示

select 
                                            distinct tblcameradetails.name as CameraName,
                                            tblcameradetails.IsDeviceEnabled, 
                                            tblcameradetails.cameraID, 
                                            tblcameradetails.deviceIP, 
                                            tblmediasourcedetails.StreamName, 
                                            tblmediasourcedetails.streamID, 
                                            tblcameradetails.Model_ID, 
                                            tblcameradetails.IsHidden, 
                                            tblcameradetails.hasPTZcapability,
                                            tblcameradetails.CameraModelNo, 
                                            tblcameradetails.username as CameraUserName,
                                            tblcameradetails.hasPTZCycle,
                                            tblcameradetails.hasPreset, 
                                            tblcameradetails.password as CameraPassword, 
                                            tblmediasourcedetails.isRecordingStarted as IsRecordingOn, 
                                            tblcameradetails.IsCovert, 
                                            tblcameradetails.constCameraName, 
                                            tblmediasourcedetails.constStreamName,
                                            tblstoredetails.Store_ID,
                                            tblsystemlocationdetails.division,
                                            tblstoredetails.Store_Name,
                                            tblstoredetails.Store_IP,
                                            tblstoreconfiguration.Liveview_Session_Timeout  
                                        from 
                                            tblmediasourcedetails, 
                                            tblcameradetails, 
                                            tblcameragroupdetails, 
                                            tblgroupdetails, 
                                            tblvssaddsourcedetails,
                                            tblsystemlocationdetails,
                                            tblstoredetails,
                                            tblstoreconfigurationwhere 
                                            tblmediasourcedetails.cameraID=tblcameradetails.cameraID 
                                            and tblmediasourcedetails.streamID=tblvssaddsourcedetails.streamID 
                                            and tblcameradetails.cameraID = tblcameragroupdetails.cameraID 
                                            and tblcameragroupdetails.groupID=tblgroupdetails.groupID
                                            and tblstoredetails.Store_ID= tblcameradetails.Store_ID
                                            and tblsystemlocationdetails.Store_ID= tblstoredetails.Store_ID
                                            and tblstoredetails.Store_ID=tblstoreconfiguration.Store_ID and 1=1order by CameraName

您会看到在WHEREandORDER BY子句之前缺少空格

您需要像这样WHERE的开头添加一个空格ORDER BY

@WhereClause nvarchar(max) = N' where 
 @OrderByClause nvarchar(100) = ' order by CameraName';

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

消息102,级别15,状态1,第3行'+'附近的语法不正确。5

来自分类Dev

消息102,级别15,状态1,第9行在“-”附近的语法不正确

来自分类Dev

消息102,级别15,状态1,第2行','附近的语法不正确错误

来自分类Dev

消息 102,级别 15,状态 1,第 1 行“日期”附近的语法不正确。在更新查询中

来自分类Dev

消息102,级别15,状态1,第3行,带有sp_executesql的''附近的语法不正确

来自分类Dev

消息102,级别15,状态1,第3行,带有sp_executesql的''附近的语法不正确

来自分类Dev

错误:消息 102,级别 15,状态 1,过程 InsertCustomers,第 30 行“THROW”附近的语法不正确

来自分类Dev

消息 102,级别 15,状态 1,过程 GET_ACTS_RULES_LIST_FOR_CLIENTS,第 1 行 ')' 附近的语法不正确

来自分类Dev

消息156,级别15,状态1,第2行关键字“ ORDER”附近的语法不正确

来自分类Dev

错误消息156,级别15,状态1,关键字'CONTINUE'附近的语法不正确

来自分类Dev

错误编号:102,状态:1,类别:15 ',' 附近的语法不正确

来自分类Dev

错误消息 - 关键字“OR”附近的语法不正确

来自分类Dev

SQL语法错误:消息156,“ CREATE附近的语法不正确”

来自分类Dev

我不断收到错误消息“关键字“ VALUES”附近的语法不正确”。

来自分类Dev

TM1:错误:“ |”附近的语法不正确 (将数值插入sql查询)

来自分类Dev

关键字“ d1”附近的语法不正确

来自分类Dev

'+复制(')附近的语法不正确。字符串')后面的未引号引起了1'

来自分类Dev

我正在使用SQL进行VB登录,并使用“单词用户附近的语法不正确”(粗体行)显示错误。建议?

来自分类Dev

使用foreach循环容器在表中创建新列-无法解决“'@ P1'附近的语法不正确”错误

来自分类Dev

”附近的语法不正确

来自分类Dev

')附近的语法不正确;

来自分类Dev

''附近的语法不正确

来自分类Dev

'('。附近的语法不正确??

来自分类Dev

')'附近的语法不正确

来自分类Dev

'('附近的语法不正确

来自分类Dev

'* ='附近的语法不正确?

来自分类Dev

“”附近的语法不正确

来自分类Dev

**附近的语法不正确?**

来自分类Dev

'\'附近的语法不正确

Related 相关文章

  1. 1

    消息102,级别15,状态1,第3行'+'附近的语法不正确。5

  2. 2

    消息102,级别15,状态1,第9行在“-”附近的语法不正确

  3. 3

    消息102,级别15,状态1,第2行','附近的语法不正确错误

  4. 4

    消息 102,级别 15,状态 1,第 1 行“日期”附近的语法不正确。在更新查询中

  5. 5

    消息102,级别15,状态1,第3行,带有sp_executesql的''附近的语法不正确

  6. 6

    消息102,级别15,状态1,第3行,带有sp_executesql的''附近的语法不正确

  7. 7

    错误:消息 102,级别 15,状态 1,过程 InsertCustomers,第 30 行“THROW”附近的语法不正确

  8. 8

    消息 102,级别 15,状态 1,过程 GET_ACTS_RULES_LIST_FOR_CLIENTS,第 1 行 ')' 附近的语法不正确

  9. 9

    消息156,级别15,状态1,第2行关键字“ ORDER”附近的语法不正确

  10. 10

    错误消息156,级别15,状态1,关键字'CONTINUE'附近的语法不正确

  11. 11

    错误编号:102,状态:1,类别:15 ',' 附近的语法不正确

  12. 12

    错误消息 - 关键字“OR”附近的语法不正确

  13. 13

    SQL语法错误:消息156,“ CREATE附近的语法不正确”

  14. 14

    我不断收到错误消息“关键字“ VALUES”附近的语法不正确”。

  15. 15

    TM1:错误:“ |”附近的语法不正确 (将数值插入sql查询)

  16. 16

    关键字“ d1”附近的语法不正确

  17. 17

    '+复制(')附近的语法不正确。字符串')后面的未引号引起了1'

  18. 18

    我正在使用SQL进行VB登录,并使用“单词用户附近的语法不正确”(粗体行)显示错误。建议?

  19. 19

    使用foreach循环容器在表中创建新列-无法解决“'@ P1'附近的语法不正确”错误

  20. 20

    ”附近的语法不正确

  21. 21

    ')附近的语法不正确;

  22. 22

    ''附近的语法不正确

  23. 23

    '('。附近的语法不正确??

  24. 24

    ')'附近的语法不正确

  25. 25

    '('附近的语法不正确

  26. 26

    '* ='附近的语法不正确?

  27. 27

    “”附近的语法不正确

  28. 28

    **附近的语法不正确?**

  29. 29

    '\'附近的语法不正确

热门标签

归档