gpt4 book ai didi

sql - 过程需要类型为 '@params' 的参数 'ntext/nchar/nvarchar'

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

这是我的存储过程:

ALTER PROCEDURE [dbo].[sp_Update_Projecttijden]
@tabelnaam NVARCHAR(30) ,
@starttijd DATETIME,
@eindtijd DATETIME,
@tijd FLOAT,
@startid INT,
@eindid INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
-- DECLARE @DATEVARCHAR NVARCHAR(4000);
DECLARE @SQLCommand NVARCHAR(MAX) = N'
UPDATE ' + QUOTENAME(@tabelnaam) + N'
SET Start = @starttijd
, Einde = @eindtijd
, Tijd = @tijd
, StartID = @startid
, EindID = @eindid

WHERE StartID = @startid AND EindID=@eindid';

EXECUTE dbo.sp_executesql @sqlCommand,
' N @starttijd DATETIME, @eindtijd DATETIME, @tijd FLOAT, @startid INT, @eindid INT'


, @starttijd
, @eindtijd
, @tijd
, @startid
, @eindid;

END

抛出的错误是这样的:

Msg 214, Level 16, State 3, Procedure sp_executesql, Line 3 Procedure expects parameter '@params' of type 'ntext/nchar/nvarchar'.



我一直在查看类似的问题/答案,但无法真正解决我的问题。
非常感谢所有帮助。

最佳答案

问题是您的代码中的错字。请注意您的 N在你的字符串中,而不是在它之前。N在字符串标识以下文本将采用 unicode 之前,您的错误实际上表明您的程序需要 unicode 参数并获得 VARCHAR反而。

EXECUTE sys.sp_executesql @sqlCommand
, N'@starttijd DATETIME, @eindtijd DATETIME, @tijd FLOAT, @startid INT, @eindid INT'
, @starttijd
, @eindtijd
, @tijd
, @startid
, @eindid;

关于sql - 过程需要类型为 '@params' 的参数 'ntext/nchar/nvarchar',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39024394/

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