我正試圖編寫一個動態的T-SQL查詢並運行到錯誤中。動態TSQL查詢
我已經刪除了除單個var之外的所有內容,並且在嘗試運行查詢時仍然收到錯誤消息。
ALTER PROCEDURE [dbo].[empowermentFetchSubmissions2]
@category INT=NULL
AS
DECLARE @sSQL AS NVARCHAR (3000),
@Where AS NVARCHAR (1000) = '';
BEGIN
SET NOCOUNT ON;
BEGIN
SET @sSQL = 'SELECT A.[submissionID],
A.[subEmpID],
A.[nomineeEmpID],
CONVERT (VARCHAR (10), A.[submissionDate], 101) AS submissionDate,
A.[situation],
A.[task],
A.[action],
A.[result],
A.[timestamp],
A.[statusID],
A.[approver],
A.[approvalDate],
B.[FirstName] + " " + B.[LastName] AS nomineeName,
B.[ntid] AS nomineeNTID,
B.[qid] AS nomineeQID,
C.[FirstName] + " " + C.[LastName] AS submitName,
C.[ntid] AS submitNTID,
D.[categoryName]
FROM empowermentSubmissions AS A
INNER JOIN
empTable AS B
ON A.[nomineeEmpID] = B.[empID]
INNER JOIN
empTable AS C
ON A.[subEmpID] = C.[empID]
INNER JOIN
empowermentCategories AS D
ON A.[categoryID] = D.[catID]';
IF (@category) IS NOT NULL
SET @Where = @Where + ' AND A.[categoryID] = @_category';
IF LEN(@Where) > 0
SET @sSQL = @sSQL + 'WHERE ' + RIGHT(@Where, LEN(@Where) - 3);
EXECUTE sp_executesql @sSQL, N'@_category', @_category = @category;
END
END
錯誤運行,這是當我得到:
附近有語法錯誤)「。消息4145,等級15,狀態1,行28 表示在預計接近'A'的條件下的上下文中指定的非布爾類型。
有什麼明顯的,我在這裏做錯了嗎?
那些雙引號或兩個單引號中的nomineeName和submitName字段?他們應該是兩個單引號。 –
他們是雙引號環繞'SET'的單引號和不喜歡當那些是單一的.. – SBB
我改變了像這樣B.' [FirstName] +''''+ B. [LastName] AS nomineeName,''並得到相同的錯誤 – SBB