DECLARE @systemUnitGuid UNIQUEIDENTIFIER = '00000000-0000-0000-0000-000000000000'
DECLARE @adminID UNIQUEIDENTIFIER = '00000000-0000-0000-0000-000000000000'
IF EXISTS(
SELECT @systemUnitGuid = UR_UN_GUID_To
FROM Un_Unit
INNER JOIN UR_UnitRelation ON UR_UN_GUID_To = UN_GUID
AND UR_CLSID = '5514c560-12ec-11de-8c30-0800200c9a66'
WHERE UR_UN_GUID_From = '8dbc36fc-f2f1-4ed9-a5b0-025857436828')
BEGIN
IF @guidId = @systemUnitGuid
BEGIN
SELECT UN_GUID
FROM Un_Unit
INNER JOIN UR_UnitRelation ON UR_UN_GUID_From = UN_GUID
AND UR_CLSID = '710b45c3-8a23-4cc3-a684-8eed6ddc1fb7'
WHERE UR_UN_GUID_To = @guidId
END
我收到以下错误
Msg 102,Level 15,State 1,Line 13
' ='附近的语法不正确。
请建议
答案 0 :(得分:0)
您在exists子句中设置变量,您不能这样做。 有关可能的解决方法,请参阅Assigning a variable inside an IF EXISTS clause。
答案 1 :(得分:0)
1)您需要声明@guidId变量
2)您无法在EXISTS内为变量赋值。
3)尝试这样:
DECLARE @systemUnitGuid UNIQUEIDENTIFIER='00000000-0000-0000-0000-000000000000'
DECLARE @adminID UNIQUEIDENTIFIER='00000000-0000-0000-0000-000000000000'
DECLARE @guidId UNIQUEIDENTIFIER='00000000-0000-0000-0000-000000000000'
SET @systemUnitGuid = (
SELECT UR_UN_GUID_To
FROM Un_Unit
INNER JOIN UR_UnitRelation
ON UR_UN_GUID_To = UN_GUID
AND UR_CLSID = '5514c560-12ec-11de-8c30-0800200c9a66'
WHERE UR_UN_GUID_From = '8dbc36fc-f2f1-4ed9-a5b0-025857436828'
)
IF (@systemUnitGuid = @guidId)
BEGIN
SELECT UN_GUID
FROM Un_Unit
INNER JOIN UR_UnitRelation
ON UR_UN_GUID_From = UN_GUID
AND UR_CLSID = '710b45c3-8a23-4cc3-a684-8eed6ddc1fb7'
WHERE UR_UN_GUID_To = @guidId
END
注意: - 如果@guid是输入参数,并且您在函数或存储过程中使用它,那么您可以删除@guid变量的声明部分。