如何从 SQL 查询中设置变量?

14 浏览
0 Comments

如何从 SQL 查询中设置变量?

我正在尝试从SQL查询中设置一个变量:

declare @ModelID uniqueidentifer
Select @ModelID = select modelid from models
where areaid = 'South Coast'

显然我做错了什么,因为它不起作用。有人能提供一个解决方案吗?

谢谢!

admin 更改状态以发布 2023年5月22日
0
0 Comments

SELECT @ModelID = modelid
FROM Models
WHERE areaid = 'South Coast'

如果您的SELECT语句返回多个值,那么您的变量将被赋予返回的最后一个值。

有关使用SELECT与变量的参考:http://msdn.microsoft.com/en-us/library/aa259186%28SQL.80%29.aspx

0
0 Comments

使用 SELECT

SELECT @ModelID = m.modelid 
  FROM MODELS m
 WHERE m.areaid = 'South Coast'

使用 SET

SET @ModelID = (SELECT m.modelid 
                  FROM MODELS m
                 WHERE m.areaid = 'South Coast');

然后您可以使用 SELECT 显示 @ModelID 的值,或者将变量放入代码中。

SELECT @ModelID

查看此问题,了解在 TSQL 中使用 SELECT 和 SET 的区别

警告

如果此 SELECT 语句返回多个值(不好的开始):

  • 使用 SELECT 时,变量将被分配为返回的最后一个值(正如womp所说),没有任何错误或警告(这可能引起逻辑漏洞)
  • 如果在查询的结尾不放置分号,则 SET 查询仅返回错误
0