gpt4 book ai didi

tsql - 无法绑定(bind)多部分标识符 "#tmpFullname.Item"。”

转载 作者:行者123 更新时间:2023-12-01 23:01:48 25 4
gpt4 key购买 nike

下面的代码应该采用一个可以用逗号分隔也可以不用逗号分隔的字符串,并将其放入一个表(#tmpFullanme)中,该部分可以完美地工作。第二部分应该根据输入的内容返回所有 LIKE/NOT LIKE 带或不带 % 符号的值。我收到的错误是“无法绑定(bind)多部分标识符“#tmpFullname.Item”。”我最好的猜测是它可能超出范围?

DROP PROCEDURE uspJudgments; 
GO
CREATE PROCEDURE uspJudgments
@fullName varchar(100), @SrchCriteria1 varchar(15), @SrchCriteria2 varchar(15), @qualifier varchar(10)
AS
BEGIN

SELECT *
INTO #tmpFullname
FROM dbo.DelimitedSplit8K(@fullName, ',')

DECLARE @Query NVarChar(1024)
SET @Query = 'SELECT d.*' + ' FROM defendants_ALL d, #tmpFullname' +
' WHERE d.combined_name' + ' ' + @qualifier + ' ' + '''' + @SrchCriteria1 + '''' + ' + ' + '''' + #tmpFullname.Item + '''' + ' + ' + '''' + @SrchCriteria2 + ''''

END

EXEC sp_executesql @Query
PRINT(@Query)

IF OBJECT_ID('#tmpFullname', 'U') IS NOT NULL
DROP TABLE #tmpFullname

EXEC uspJudgments @qualifier = 'LIKE', @fullName = 'johnson', @SrchCriteria1 = '%', @SrchCriteria2 = '%'

无法到达 PRINT 输出,因为“无法绑定(bind)多部分标识符“#tmpFullname.Item”。”如果我将 #tmpFullname.Item 更改为“#tmpFullname.Item”,它会执行并且不返回任何内容,但它表明查询是正确的,减去该表的问题。

SELECT d.* FROM defendants_ALL d, #tmpFullname WHERE d.combined_name LIKE '%' + '#tmpFullname.Item' + '%'

请注意,在我将其变成动态查询以便我可以将语句从 LIKE 更改为 IN 等之前,它运行得很好。

最佳答案

我设置了一个完整的测试来获取正确的脚本来获得您想要的结果。我还有一个SQL Fiddle展示这是如何工作的。 注意您将需要在存储过程中运行EXECUTE sp_executesql @Query

ALTER PROCEDURE uspJudgments @fullName varchar(100)
, @SrchCriteria1 varchar(15)
, @SrchCriteria2 varchar(15)
, @qualifier varchar(10)
AS
BEGIN

--Simulates your split function
SELECT *
INTO #tmpFullName
FROM
(
SELECT 'firstTest' AS Item
UNION ALL SELECT 'secondTest'
UNION ALL SELECT 'NotThere'
) AS t;

DECLARE @Query NVARCHAR(1024);
SELECT @Query = 'SELECT d.* '
+ ' FROM defendants_ALL d '
+ ' CROSS JOIN #tmpFullName AS t '
+ ' WHERE d.combined_name' + ' ' + @qualifier + ' '
+ '''' + @SrchCriteria1 + ''''
+ ' + ' + 't.Item' + ' + ' + '''' + @SrchCriteria2 + '''';

EXECUTE sp_executesql @Query;

END

EXECUTE uspJudgments
@fullName = 'does not matter'
, @SrchCriteria1 = '%'
, @SrchCriteria2 = '%'
, @qualifier = 'LIKE';

关于tsql - 无法绑定(bind)多部分标识符 "#tmpFullname.Item"。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13021282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com