如何更正SQL server中的语法错误?

如何更正SQL server中的语法错误?,sql,Sql,我试图使用以下存储过程的一部分,但在SQL Server中的表上运行时,出现错误: CREATE PROCEDURE USP_Query_1 @sourcetype varchar(50), @datasource varchar(50), @queries varchar(50), @username varchar(50) NULL, @password varchar(50) NULL AS BEGIN DECLARE @SQL VA

我试图使用以下存储过程的一部分,但在SQL Server中的表上运行时,出现错误:

CREATE PROCEDURE USP_Query_1
    @sourcetype varchar(50),   
    @datasource varchar(50),
    @queries varchar(50),
    @username varchar(50) NULL,
    @password varchar(50) NULL

AS
BEGIN
    DECLARE @SQL VARCHAR(50)
    SET @SQL = CASE WHEN @datasource = 'SQL Server' 
                        THEN 'SELECT * FROM OPENROWSET
                        (''SQLNCLI'', ''Server='+@datasource +';Trusted_Connection=yes;'',
                         '''+@queries +''')'    
...
END
    PRINT (@SQL)                            
    EXEC (@SQL)
  END
GO  
错误显示:

'从OPENROWSET中选择* (“SQLNCLI”,“Server=”++@datasource+”;Trusted_Connection=yes;”,靠近“,”的语法不正确


我真的没有看到这里的错误,有人能告诉我它在哪里,以及有什么建议来解决这个问题吗?

varchar(50)显然对于字符串来说太短了。“在参数之后指定NULL除了内存优化的过程之外没有任何价值请不要在没有首先打印SQL并检查它的情况下发布任何动态SQL语法错误问题…也没有真正了解
@querys
中的内容我们如何能够调试它?你好,Nick,ho我应该打印SQL并检查它吗?@查询将是表中的select语句,例如:“select*from Features.dbo.NAME”