如何从 SQL 查询中设置变量?
如何从 SQL 查询中设置变量?
我正在尝试从SQL查询中设置一个变量:
declare @ModelID uniqueidentifer Select @ModelID = select modelid from models where areaid = 'South Coast'
显然我做错了什么,因为它不起作用。有人能提供一个解决方案吗?
谢谢!
admin 更改状态以发布 2023年5月22日
SELECT @ModelID = modelid FROM Models WHERE areaid = 'South Coast'
如果您的SELECT语句返回多个值,那么您的变量将被赋予返回的最后一个值。
有关使用SELECT与变量的参考:http://msdn.microsoft.com/en-us/library/aa259186%28SQL.80%29.aspx
使用 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
查询仅返回错误