Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server sql server唯一标识符比较_Sql Server_Select_Triggers_Uniqueidentifier - Fatal编程技术网

Sql server sql server唯一标识符比较

Sql server sql server唯一标识符比较,sql-server,select,triggers,uniqueidentifier,Sql Server,Select,Triggers,Uniqueidentifier,我正在写一个触发器,我有一个select命令的问题,该命令应该比较uniqueidentifier。它返回null。我怎样才能解决这个问题 DECLARE @EmailTablePrimaryKey uniqueidentifier SELECT @PostSpecialityID=CategoryId FROM PostCategoryRelations WHERE PostId = @EmailTablePrimaryKey @EmailTablePrimaryKey和PostId是唯

我正在写一个触发器,我有一个select命令的问题,该命令应该比较uniqueidentifier。它返回null。我怎样才能解决这个问题

DECLARE @EmailTablePrimaryKey  uniqueidentifier
SELECT @PostSpecialityID=CategoryId  FROM PostCategoryRelations WHERE PostId = @EmailTablePrimaryKey
@EmailTablePrimaryKey和PostId是唯一标识符,若我像下面这样静态地放置参数,它可以工作,但不能与参数一起工作

SELECT @PostSpecialityID=CategoryId  FROM PostCategoryRelations WHERE PostId = '7c5ec001-81a2-e211-95dc-842b2b07eeaf'

您认为问题出在哪里?

您尚未显示正在填充
@EmailTablePrimaryKey
。但在触发器中使用标量变量通常是一个警告标志,表明作者认为插入的
包含一行(通常不包含,它可能包含0、1或多行)@EmailTablePrimaryKey返回一行。我确信这一点。它是通过另一个select语句填充的。我还可以使用什么来代替标量变量?如果必须以多个步骤执行工作,可以使用临时表或表变量。理想情况下,您可以使用
inserted
作为源表之一,找到一种将您的意图表示为单个查询的方法。可能是如果您发布了关于触发器应该做什么以及涉及的表的内容,您会得到一个更适合您的任务的答案