'。'附近的语法错误当从Excel中查询SQL Server时

问题描述:

我已经通过Excel文件从VBscript成功连接到我们的SQL Server。我能够运行下面的查询和返回预期的结果,但现在我得到一个错误:'。'附近的语法错误当从Excel中查询SQL Server时

Incorrect syntax near '.'

我已经改变了被添加字符串休息,结束了报价行的唯一的事,符号,空格,连字符继续查询下一行。

我试过了所有的建议,我可以找到堆栈溢出,例如。删除并重新添加空格,复制/粘贴到记事本中以查找特殊字符,重新添加所有'。'。并手动添加CR。

还有其他想法吗?我应该使用不同的语法来分解我的查询字符串吗?

SELECT 
    IM_BARCOD.BARCOD, IM_PRC.PRC_1, IM_INV.QTY_AVAIL, IM_ITEM.DESCR, 
    IM_INV.LOC_ID, IM_INV.ITEM_NO" & _ 
FROM 
    BCEXP.dbo.IM_BARCOD 
INNER JOIN 
    BCEXP.dbo.IM_INV ON IM_INV.ITEM_NO = IM_BARCOD.ITEM_NO 
INNER JOIN 
    BCEXP.dbo.IM_PRC ON IM_INV.ITEM_NO = IM_PRC.ITEM_NO 
INNER JOIN 
    BCEXP.dbo.IM_ITEM ON IM_INV.ITEM_NO = IM_ITEM.ITEM_NO" & _ 
WHERE 
    (IM_ITEM.TRK_METH = 'N' AND IM_INV.LOC_ID = 'MAIN')" & _ 
    AND(IM_ITEM.ITEM_VEND_NO = 'OSPR' OR IM_ITEM.ITEM_VEND_NO = 'ENZEES' 
     OR IM_ITEM.ITEM_VEND_NO = 'WM') 
+0

您可以编辑您的问题以包含SQL代码并正确格式化 – Pac0

+0

使用存储过程是一种更好的做法,因此您不必在VB中处理长查询,它不舒服,而且更容易使用sql编辑器查找错误。 – espino316

+0

你可能需要加倍你的双引号...... – ian0411

正如您已经注意到的,当您使用类似的字符串时很难获得SQL正确性。我假设你正在使用Visual Studio的旧版本,所以一个选项,以使SQL更具可读性是使用XML文本,像这样:

Dim sql = <sql> 
SELECT     im_barcod.barcod, 
           im_prc.prc_1, 
           im_inv.qty_avail, 
           im_item.descr, 
           im_inv.loc_id, 
           im_inv.item_nofrom bcexp.dbo.im_barcod 
inner JOIN bcexp.dbo.im_inv 
ON         im_inv.item_no=im_barcod.item_no 
INNER JOIN bcexp.dbo.im_prc 
ON         im_inv.item_no=im_prc.item_no 
INNER JOIN bcexp.dbo.im_item 
ON         im_inv.item_no=im_item.item_nowhere(im_item.trk_meth='N' 
AND        im_inv.loc_id='MAIN') 
AND       ( 
                      im_item.item_vend_no='OSPR' 
           OR         im_item.item_vend_no='ENZEES' 
           OR         im_item.item_vend_no='WM') 
</sql>.Value() 

标签<sql>的名称并不重要。您的缩进可能与显示的缩进不同 - 我使用了一个在线SQL格式化程序(此次为Instant SQL Formatter)。

现在你可以看到这一切发生可怕的事情周围

im_inv.item_no=im_item.item_nowhere(im_item.trk_meth='N' 

因为有后“ITEM_NO”缺少空间。

+0

谢谢你的帮助。我在上面的XML中添加了显然需要的空间,它起作用了!我将来一定会使用SQL格式化程序 – Liz