SQL查询创建存储过程错误'语法不正确'

时间:2015-03-05 07:06:16

标签: sql-server stored-procedures syntax-error

我使用sql来创建存储过程,但是我收到错误" '附近的语法不正确=' " 这是我的代码

CREATE PROC [dbo].[sp_T_CATEGORY_GetByTop]
@top nvarchar(10),
@where nvarchar(200),
@order nvarchar(200)
AS
    DECLARE @SQL AS NVARCHAR(500)
    SELECT @SQL = 'SELECT TOP ('+@top+') * FROM [T_CATEGORY]'
    IF LEN(@top) = 0
        BEGIN
            SELECT @SQL = 'SELECT * FROM T_CATEGORY'
        END
    IF LEN(@where) > 0
        BEGIN
            SELECT @SQL = @SQL + 'WHERE' + @where
        END
    IF LEN(@order) > 0
        BEGIN
            SELECT @SQL = @SQL + 'ORDER BY' + @order
        END
        EXEC(@SQL)

谢谢大家。

1 个答案:

答案 0 :(得分:4)

spacewhere

之前和之后,您需要order by
IF LEN(@where) > 0
    BEGIN
        SELECT @SQL = @SQL + ' WHERE ' + @where
    END
IF LEN(@order) > 0
    BEGIN
        SELECT @SQL = @SQL + ' ORDER BY ' + @order
    END