tsql - SELECT INTO 多个变量
问题描述
我正在尝试创建存储过程,从数据库中获取一些数据,然后将这些数据放入变量中。
现在我正在使用这个:
DECLARE @CurrentRbr int;
SET @CurrentRbr =
(
SELECT Max(Rbr) + 1 As CurrentRbr
FROM Orders
WHERE OrderID=@OrderID
)
我想要更多的变量:
DECLARE @OrderAdress varchar(50), @OrderCity varchar (20)
我可以做类似的事情吗(这当然行不通):
SET @CurrentRbr,@OrderAdress,@OrderCity =
(
SELECT Max(Rbr) + 1 As CurrentRbr,OrderAdress,OrderCity
FROM Orders
WHERE OrderID=@OrderID
)
解决方案
Select
比Set
将数据放入变量更好。
DECLARE @CurrentRbr int,@OrderAdress varchar(50), @OrderCity varchar (20)
SELECT @CurrentRbr = Max(Rbr) + 1 ,
@OrderAdress=OrderAdress,
@OrderCity=OrderCity
FROM Orders
WHERE OrderID=@OrderID
Group by OrderAdress, OrderCity
如果您使用一个不需要的变量,SET
如下所示:
DECLARE @CurrentRbr int = (
SELECT Max(Rbr) + 1 As CurrentRbr
FROM Orders
WHERE OrderID=@OrderID
)
您可以在 SQL 中阅读另一种形式的使用变量单击此处 希望您一切顺利
推荐阅读
- vba - 双击以在访问中输入当前日期/时间
- database - 使用 SQLite 触发器强制显式设置列值
- javascript - 通过给定的键将两个对象数组合并为一个并复制其他值
- javascript - 将 Excel 宏转换为 Google 工作表
- python - 尽管有 url 模式,但无法从浏览器访问 Django 站点
- python - 如何检查我的客户端套接字中的 recv 是否为空
- javascript - 使用 Javascript 更改图像源 - 基本功能不起作用
- rest - 有关 HTTP 请求为何被 403 处理的详细信息
- time - Jmeter在分布式模式下的响应时间突然增加
- .net - 如何在 VB.net 中正确地将字符串转换为十进制