存储过程抛出错误
必须声明一个表变量
在存储过程中,我从调用该存储过程的 UI 中获取表名称。我不想在存储过程中创建表变量。如果有人有想法,我们将不胜感激。谢谢。
存储过程如下:
ALTER PROCEDURE [dbo].[usp_Rates_GET_CustomOFCLData]
@returnOrigin VARCHAR(256),
@returnDest VARCHAR(256)
AS
BEGIN
SET NOCOUNT ON;
SELECT
*,
'o' as LocationType
FROM
@returnOrigin
UNION ALL
SELECT
*,
'd' as LocationType
FROM
@returnDest
END
Run Code Online (Sandbox Code Playgroud) 我有以下动态查询,并希望传递一个运算符作为参数,但出现错误
@ageOperator 附近的语法不正确
另外,我想防止任何SQL注入。我可以像下面那样进行串联,但它会导致 SQL 注入。
@sWhere = ' WHERE AGE1 ' + @ageOperator + ''' + @age + '''
Run Code Online (Sandbox Code Playgroud)
先感谢您!
DECLARE @age INT,
@ageOperator VARCHAR(10),
@sSQL NVARCHAR(MAX),
@sWhere NVARCHAR(MAX)
SET @age = 21
SET @ageOperator = ' = '
SET @sWhere = ' WHERE AGE1 @ageOperator @age '
SET @sSQL = ' SELECT * FROM WEBPM_COPY.DBO.Test1111 ' + @sWhere
EXEC sp_executesql @sSQL, N'@age INT, @ageOperator char(10)', @age, @ageOperator;
Run Code Online (Sandbox Code Playgroud)