USE DATABASE
insert into #Table -- Previously created temp table
(
Name
Number
Date
)
select 'Joe', 5, 'January 9th'
union all select 'Sam', 3, 'January 4th'
union all select 'Eleanor', 4, 'January 5th'
union all select 'Joseph', 1, 'January 6th'
我的问题是当插入到select中时没有指定'来自' USE语句的范围是什么?声明清楚地表明信息来自数据库中的哪个表?
我遇到了类似于这个的select语句的插入,而我正在努力理解的是,如果数据是在四个select语句中创建的,或者是在DATABASE中搜索和找到它。如果正在搜索Microsoft SQL Server Management Studio如何知道所引用的表?
答案 0 :(得分:1)
USE database
之后的所有内容都将在所选数据库的上下文中运行。
在这种情况下,USE
无法完成任何操作,因为#temp
表存储在tempdb
中,无论您使用使用哪个数据库, select不访问任何表,因此无论数据库上下文如何,它都将返回硬编码值。
答案 1 :(得分:0)
如果没有FROM
子句,则数据不会来自任何数据库中的任何表。它被硬编码到INSERT
查询中。如果你问它是如何知道将数据插入到哪个表中的,那是在INSERT INTO
子句中指定的,并且在USE
语句的上下文中。
我怀疑你的问题,因为你插入临时表,你评论为“先前创建”,临时表的范围是完全不同的。