如果我想从同一批处理中的多个查询引用我的行集,我可以使用什么类型的对象(在T-SQL中)?
我强调的是同一批。
非常感谢
发布于 2015-08-19 05:23:37
创建一个temp表变量并插入其中。
DECLARE @TempCustomer TABLE
(
CustomerId uniqueidentifier,
FirstName nvarchar(100),
LastName nvarchar(100),
Email nvarchar(100)
);
INSERT INTO
@TempCustomer
SELECT
CustomerId,
FirstName,
LastName,
Email
FROM
Customer
WHERE
CustomerId = @CustomerId发布于 2016-02-23 04:47:28
这对我来说还不够清楚,但您可以使用bulk insert或bulk update来处理multiplus结果。
要插入,您可以执行SELECT操作,精确返回要在另一个表中插入的字段,如...
INSERT INTO TableA (ID, Name, Phone) SELECT CustomerID, CustomerName, CustomerPhone FROM TableB
要更新,实现您有'customers‘的TableA要用TableB信息更新,然后您可以执行以下操作...
UPDATE TableA SET TableA.Phone=TableB.Phone FROM TableB WHERE TableA.CustomerID=TableB.CustomerID
发布于 2016-02-23 05:07:18
这个问题对我来说并不完全清楚,但一种方法是将数据物化到“会话”表中:
SessionId - UNIQUEIDENTIFIER is one option
Col1
Col2
...
ColnUNIQUEIDENTITIER是最简单的选择,但不是最快的(大密钥)。否则,可以使用SEQUENCE (SQL2012+)。
数据生成是使用INSERT .. SELECT:获得的
INSERT INTO SessionTable
(SessionId, Col1, Col2, ... , Coln)
SELECT @SessionId, ....
FROM <various sources>Disadvantages:
SELECT权限的人都可以访问。必须处理安全性(DENY),如果敏感数据为handled.https://stackoverflow.com/questions/32082673
复制相似问题