为什么我的查询提交错误?

时间:2019-02-06 14:32:56

标签: tsql

对于作业,我必须执行以下操作。

编写脚本来安全地检查特定区域是否存在:

声明类型为@region的名为Space的自定义区域NVARCHAR(25)。 使用IF NOT EXISTS, ELSE, and BEGIN..END可以:

如果不存在RegionDescription与THROW 50001, 'Error!', 0相匹配的记录,则

@region抛出错误。 如果记录确实存在,请从“区域”表中选择该区域的所有列。 注意:

将“区域”表指定为Region,而不是dbo.Region。 在任何地方使用SELECT * FROM Region <fill in>

我写的查询某种程度上是不正确的,但我不知道出了什么问题:

DECLARE @region NVARCHAR(25)='Space'

IF NOT EXISTS (SELECT * FROM Region WHERE RegionDescription = @region)
BEGIN
  THROW 50001, 'Error!', 0;
  END
ELSE 
BEGIN
(SELECT * FROM Region WHERE RegionDescription = @region)
END

2 个答案:

答案 0 :(得分:0)

我认为您的查询是正确的。它输出“错误!”因为如果表中不存在名为“ Space”的区域,则应该这样做。尝试在带有RegionDescription的表中插入一行称为“ Space”的行,然后您的查询应输出该行。

也许问题仅在于您没有名为Region的表。如果是这样,则应从创建此表开始。该表必须具有一些列,其中一列应称为RegionDescription。

如果这对您没有帮助,请说明您收到的错误消息。

答案 1 :(得分:0)

这是我编写的查询,提交成功。不确定两者之间有什么不同。...

DECLARE @region NVARCHAR(25)='Space'

IF NOT EXISTS (Select * From Region WHERE RegionDescription=@region)
BEGIN
    THROW 50001,'error!',0;
    END
ELSE
BEGIN
(SELECT * from Region Where RegionDescription=@region)
END