存儲過程我寫了這個程序,並定義了兩個字符串作爲它的參數:Exec用兩個字符串參數
CREATE PROCEDURE [dbo].[spo_SelectTable1sDynamic]
@WhereCondition nvarchar(500),
@OrderByExpression nvarchar(250) = NULL
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
DECLARE @SQL nvarchar(3250)
SET @SQL = 'SELECT
[col1], [col2], [col3], [col4]
FROM
[dbo].[Table1]
WHERE
' + @WhereCondition
IF @OrderByExpression IS NOT NULL AND LEN(@OrderByExpression) > 0
BEGIN
SET @SQL = @SQL + 'ORDER BY ' + @OrderByExpression
END
EXEC sp_executesql @SQL
我傳遞了兩個字符串爲@whereconditio
和@OrderByExpression
參數。
如何執行此存儲過程?我用這個代碼,但得到一個錯誤:
的所有代碼EXECUTE spo_SelectTable1sDynamic N'col1='book'' , N'col1 '
** [可能的SQL注入](https://msdn.microsoft.com/en-us/libra ry/ms161953%28v = sql.105%29.aspx)**特別是'@ wherecondtition'完全以字符串形式傳遞 – lad2025
如何解決這個問題? – programmer138200
好................ – programmer138200