Sql StoredProcess:关键字';内部';

Sql StoredProcess:关键字';内部';,sql,stored-procedures,Sql,Stored Procedures,我正在使用SQL server存储该过程 我面临着错误 “关键字“内部”附近的语法不正确” 以下是我的问题: set @SQL= 'select pushto as MSISDN,pushprice as Price,pushdate as DateTime,pushtext as Message from '+@tblname+' WITH (NOLOCK) WHERE '+@sqldate + @scodelist+ @clientlist + @piclist +' INNER JOIN

我正在使用SQL server存储该过程

我面临着错误

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

以下是我的问题:

set @SQL= 'select pushto as MSISDN,pushprice as Price,pushdate as DateTime,pushtext as Message from '+@tblname+' WITH (NOLOCK) WHERE '+@sqldate + @scodelist+ @clientlist + @piclist +' INNER JOIN INAPremium..INA_Keyword K on R.keyid = K.keyid WHERE '+@sqldate
+ @scodelist+ @clientlist + @piclist + @DNType + @pkeywordlist + @seckeywordlist +' order by pushdate desc'
需要你们的帮助。
谢谢。

您发布的查询是错误的。您在
内部联接之前使用了
WHERE
,实际上应该反过来使用。此外,您还有多个
WHERE
子句

from '+@tblname+' WITH (NOLOCK) 
WHERE '+@sqldate + @scodelist+ @clientlist + @piclist +' 
INNER JOIN INAPremium..INA_Keyword K on R.keyid = K.keyid
应该是

from '+@tblname+' WITH (NOLOCK)      
INNER JOIN INAPremium..INA_Keyword K on R.keyid = K.keyid
WHERE '+@sqldate + @scodelist+ @clientlist + @piclist +'

您的语法必须是来自。。。内部连接。。。其中

诸如此类:

set @SQL= 'select pushto as MSISDN,pushprice as Price,pushdate as DateTime,pushtext as Message 
from '+@tblname+' WITH (NOLOCK)  +
' INNER JOIN INAPremium..INA_Keyword K on R.keyid = K.keyid 
WHERE '+@sqldate + 
+ @scodelist+ @clientlist + @piclist + @DNType + @pkeywordlist + @seckeywordlist +' order by pushdate desc'

在我看来,这是语法错误

你有两个WHERE,one-after和(NOLOCK)second-after内部连接

请尝试以下代码:

set @SQL= '
select 
    pushto as MSISDN,
    pushprice as Price,
    pushdate as DateTime,
    pushtext as Message 
    from '+@tblname+' 
    WITH (NOLOCK) 
    INNER JOIN INAPremium..INA_Keyword K on R.keyid = K.keyid 
    WHERE '+@sqldate+ @scodelist+ @clientlist + @piclist + @DNType + @pkeywordlist + @seckeywordlist +' 
    order by pushdate desc'

您只能有一个
WHERE
子句,它需要跟在所有
FROM
JOIN
s之后。标记您正在使用的dbms。该代码是特定于产品的!