gpt4 book ai didi

sql-server - 存储过程中 IN 运算符导致数据类型 nvarchar 转换为 bigint 时出错

转载 作者:行者123 更新时间:2023-12-02 06:57:22 26 4
gpt4 key购买 nike

存储过程:

ALTER PROCEDURE [dbo].[MyProcedure]
@CommaSeperatedValues nvarchar(500)
AS
BEGIN
SET NOCOUNT ON;
SELECT Col1, Col2, Col3
FROM MyTable
WHERE SomeCol_BigIntDataType IN (@CommaSeperatedValues)

来自代码的值是字符串值:“9010073,9010074”

我试过像这样运行 SP:exec MyProcedure '9010073,9010074'

运行 SP 时出现错误“将数据类型 nvarchar 转换为 bigint 时出错”

如果我单独运行选择查询,如下所示:

SELECT  Col1, Col2, Col3
FROM MyTable
WHERE SomeCol_BigIntDataType IN (9010073,9010074)

然后我得到了预期的结果。

但我想从 SP 运行。

最佳答案

我们开始吧。你可以通过动态查询来做到这一点

DECLARE @mystring NVARCHAR(max)
DECLARE @UserId NVARCHAR(max)
SET @UserId = '9010073,9010074'
SELECT @mystring = 'SELECT Col1, Col2, Col3 FROM MyTable where UserId IN('+ @UserId +')'
EXEC sp_executesql @mystring

关于sql-server - 存储过程中 IN 运算符导致数据类型 nvarchar 转换为 bigint 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28578600/

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