使用 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 创建新表 [重复]
如何在 Oracle PL SQL 中将 INTO 与 SELECT AS 一起使用?
mysql中select into 和sql中的select into 对比