使用 SELECT ... INTO 在 SQL Server 中创建表

Posted

技术标签:

【中文标题】使用 SELECT ... INTO 在 SQL Server 中创建表【英文标题】:Creating a table in SQL Server using SELECT ... INTO 【发布时间】:2010-02-04 05:55:40 【问题描述】:

我正在使用“SELECT Table1.* INTO Table2 FROM Table1”之类的查询在 sqlserver 数据库中创建一个表 这里 Table2 创建成功,但没有显示我的数据库

当我再次触发这个查询时,它给出的错误是 Table2 已经创建,但我在我的数据库中看不到这个

我也在刷新我的数据库

所以如果有人有解决方案请帮助我..

【问题讨论】:

这更像是一个数据库问题而不是 C# 问题。请编辑您的标题和标签,并说明数据库。无论如何,你能做到SELECT * FROM Table2 吗?我是这么想的。所以,桌子可能就在那里。 您在寻找正确的数据库吗?别笑,我以前做过! 是的,我可以这样做,但我还是看不到桌子 @editors - 有什么理由认为这是 SQL Server? 【参考方案1】:

@Ramesh 有正确的想法。在某些情况下(我认为如果您的用户是db_owner 角色?),SELECT INTO 表是在与您的登录关联的架构(SQL 2005+ 术语)中创建的。这可能类似于YOURDOMAIN\username.Table2。如果您从同一登录名中再次选择,它会正常工作,但其他用户可能不会在您的架构中搜索。

如有疑问,请在 dbo 架构中显式创建表:

SELECT Table1.*
INTO dbo.Table2
FROM Table1

【讨论】:

【参考方案2】:

你试过用username.Table1,比如

  dbo.table

为任何数据库对象附加用户名非常重要,它强制用户选择他有权查看的对象

【讨论】:

但是我可以从这个 Table2 中检索数据,这意味着它已创建但我看不到这个表我已经在 asp.net Web 应用程序中完成了它并且我可以看到这个表但我不能在 Windows 应用程序中查看我在我已经手动创建的表中看不到任何插入的数据 因为你看不到那个表——它是不是临时表(#tablename)?默认情况下,这些仅对当前连接可见。 你知道我怎样才能看到这张表而不是帮助我 @harsh,请解释一下它的意思是“我看不到桌子”吗?是您在 sql 查询编辑器(ssms)中看不到表还是您从应用程序触发查询但没有得到任何结果..您可以在 sql 编辑器中触发查询,看看它是否会返回任何行?

以上是关于使用 SELECT ... INTO 在 SQL Server 中创建表的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL 中使用 SELECT INTO 创建新表 [重复]

SQL学习select into:复制表信息

如何在 Oracle PL SQL 中将 INTO 与 SELECT AS 一起使用?

mysql中select into 和sql中的select into 对比

PL/SQL SELECT INTO 错误 (ORA-00905)

如何将 SQL INSERT INTO SELECT 与 codeigniter 一起使用