Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 靠近';的语法不正确';。进行中_Sql Server - Fatal编程技术网

Sql server 靠近';的语法不正确';。进行中

Sql server 靠近';的语法不正确';。进行中,sql-server,Sql Server,您的SQL不正确,因为SQL字符串中有单引号。你需要逃离这些。例如: IF NOT EXISTS (SELECT * FROM sys.procedures WHERE name = 'spGetEmployeeListWithOutputVariable') BEGIN EXEC('CREATE PROCEDURE spGetEmployeeListWithOutputVariable @NoOfRecord INT OUTPUT AS

您的SQL不正确,因为SQL字符串中有单引号。你需要逃离这些。例如:

IF NOT EXISTS (SELECT * FROM sys.procedures WHERE name = 'spGetEmployeeListWithOutputVariable')
BEGIN
        EXEC('CREATE PROCEDURE spGetEmployeeListWithOutputVariable
        @NoOfRecord INT OUTPUT
        AS
        BEGIN
        SELECT @NoOfRecord = COUNT(EmployeeID)
        FROM EmployeeData
        SELECT 
            employee.EmployeeId,
            employee.EmployeeName,
            employee.ContactNumber,
            STUFF((SELECT ',' + hobby.Name FROM Hobbies AS hobby    
                            JOIN dbo.MapHobbiesData AS MapEmpHob 
                                ON MapEmpHob.HobbiesId=hobby.HobbiesId     
                            WHERE MapEmpHob.EmployeeId=employee.EmployeeId
                            FOR XML PATH(''))
                ,1,1,'')  Hobbies,
                NoOfEmpRecords = @NoOfRecord
        FROM EmployeeData AS employee
        END')
END

用双倒逗号(“”)替换单倒逗号(“”)


你试过运行静态查询吗?我试过了,它被执行了。@ChetanSanghani这怎么可能是真的?上面的SQL有一个语法错误。不是语法错误我只得到了一个“正确的语法错误”)“这只对我来说是无效的@Chetan Sanghani
IF NOT EXISTS (SELECT * FROM sys.procedures WHERE name = 'spGetEmployeeListWithOutputVariable')
BEGIN
        EXEC('CREATE PROCEDURE spGetEmployeeListWithOutputVariable
        @NoOfRecord INT OUTPUT
        AS
        BEGIN
        SELECT @NoOfRecord = COUNT(EmployeeID)
        FROM EmployeeData
        SELECT 
            employee.EmployeeId,
            employee.EmployeeName,
            employee.ContactNumber,
            STUFF((SELECT '','' + hobby.Name FROM Hobbies AS hobby    
                            JOIN dbo.MapHobbiesData AS MapEmpHob 
                                ON MapEmpHob.HobbiesId=hobby.HobbiesId     
                            WHERE MapEmpHob.EmployeeId=employee.EmployeeId
                            FOR XML PATH(''''))
                ,1,1,'''')  Hobbies,
                NoOfEmpRecords = @NoOfRecord
        FROM EmployeeData AS employee
        END')
END
EXEC('CREATE PROCEDURE spGetEmployeeListWithOutputVariable
        @NoOfRecord INT OUTPUT
        AS
        BEGIN
        SELECT @NoOfRecord = COUNT(EmployeeID)
        FROM EmployeeData
        SELECT 
            employee.EmployeeId,
            employee.EmployeeName,
            employee.ContactNumber,
            STUFF((SELECT '','' + hobby.Name FROM Hobbies AS hobby    
                            JOIN dbo.MapHobbiesData AS MapEmpHob 
                                ON MapEmpHob.HobbiesId=hobby.HobbiesId     
                            WHERE MapEmpHob.EmployeeId=employee.EmployeeId
                            FOR XML PATH(''''))
                ,1,1,'''')  Hobbies,
                NoOfEmpRecords = @NoOfRecord
        FROM EmployeeData AS employee
        END')