DECLARE @caseId UNIQUEIDENTIFIER,
@fieldId UNIQUEIDENTIFIER,
@columnName NVARCHAR(MAX),
@dateValue DATETIME,
@tableName nvarchar(MAX);
set @command = 'update ' + @tableName + ' set ' + @columnName + ' = ' + @dateValue + ' where Id = ''' + @caseId + '''';
exec sp_executesql @command;
运行更新命令时出现错误。 - 数据类型 datetime 和 uniqueidentifier 在 add 运算符中不兼容。 有人可以帮忙吗?
最佳答案
我认为您应该使用日期和 id 值的查询参数,而不是将它们混杂在查询字符串中。
看起来像:
declare
@pCaseId UNIQUEIDENTIFIER,
@pFieldId UNIQUEIDENTIFIER,
@pColumnName NVARCHAR(MAX),
@pDateValue DATETIME,
@pTableName nvarchar(MAX);
set @command = 'update ' + @pTableName + ' set ' + @pColumnName + ' = @dateValue where Id = @caseId';
exec sp_executesql
@command,
N'@dateValue DATETIME, @caseId UNIQUEIDENTIFIER',
@pDateValue,
@pCaseId
;
关于c# - 如何修复 'The data types datetime and uniqueidentifier are incompatible in the add operator.',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60485799/