我正在使用MS SQL,我没有权限创建表。我喜欢做的是从我正在运行的查询(称为客户查询)创建一个临时表,并使用临时表并将其链接到一个名为订单查询的新查询
如何在运行客户查询后首先创建临时表,如何在名为订单查询的第二个查询中使用该临时表?
每次运行客户查询时,临时表是否存在并得到更新?
答案 0 :(得分:2)
您需要在tempdb上授予create,因为实际上在该数据库中创建了所有临时表。
寻找您的DBA以授予您适当的权限。
只要您连接到创建它的会话范围,临时表就会保留。您可以创建一个临时表,该表在所有会话中保持不变,但要随时访问
您的DBA的另一个好处是,他或她可以解释如何正确创建和使用这些表。 :)
答案 1 :(得分:1)
请参阅上面的评论。不需要临时表。更有可能的是,您需要做的只是一个查询。
SELECT <colsNeeded>
FROM order
INNER JOIN customer ON order.<customerID> = customer.<customerID>
WHERE order.X = ???
答案 2 :(得分:0)
我非常喜欢Shawn的回答,但遗憾的是我认为订单查询是一个简单的连接。使用临时表可能需要做更多的事情。如果确实需要这样,并且您有权创建临时表,我建议创建第一个查询的动态查询,并将其附加到订单查询并一起执行它们。这样,它将在同一个会话中,您可以在订单查询中的所有查询中访问该表。