我正在使用sql,这里我有一个sql语句,我需要将我的sql表的数据存储在标量变量中
我做了类似这样的事情
declare @variable1 as varchar(50)
declare @variable2 as varchar(50)
SELECT @variable1 = tid, @variable2 = empname
FROM trainerdetails
select @variable2 as empname,@variable1 as tid
但我的输出中只显示了一条记录
empname tid
test 354
如果我想将我的表的所有数据存储在我的标量变量中,我应该在这做什么?
答案 0 :(得分:0)
标量变量仅包含数据的最后部分。您将需要一个表变量
declare @tbl table
(
col1 int,
col2 int
)
insert into @tbl
select * from yourtable
答案 1 :(得分:0)
根据定义,标量变量一次只能保存一个值。所以......如果你想把整个数据库的数据合二为一,你需要连接那些数据......通常是逗号分隔数组的形式。 这些方面的东西......
IF OBJECT_ID('tempdb..#temp', 'U') IS NOT NULL
DROP TABLE #temp;
CREATE TABLE #temp (
ID INT NOT NULL,
PersonName VARCHAR(50) NOT NULL
);
INSERT #temp (ID, PersonName) VALUES
(1, 'Mark'), (2, 'Sally'), (3, 'Joe'), (4, 'Tammy'), (5, 'Bob');
SELECT * FROM #temp t;
--========================================
DECLARE
@ID VARCHAR(100) = '',
@PersonName VARCHAR(1000) = '';
SELECT
@ID = CONCAT(@ID, ', ', t.ID),
@PersonName = CONCAT(@PersonName, ', ', t.PersonName)
FROM
#temp t
ORDER BY
t.ID;
SELECT
ID = STUFF(@ID, 1, 1, ''),
PersonName = STUFF(@PersonName, 1, 1, '');
结果...
ID PersonName
--------------- ------------------------------
1, 2, 3, 4, 5 Mark, Sally, Joe, Tammy, Bob
HTH, 杰森