有啥方法可以创建与 SQL Server 2005 中的视图具有相同布局的表?

Posted

技术标签:

【中文标题】有啥方法可以创建与 SQL Server 2005 中的视图具有相同布局的表?【英文标题】:Is there any way to create a table with the same layout as a view in SQL Server 2005?有什么方法可以创建与 SQL Server 2005 中的视图具有相同布局的表? 【发布时间】:2009-04-29 19:23:25 【问题描述】:

我真的想不出最好的方式来表达这个问题,所以我只举一个例子。假设我有一个这样创建的表:

CREATE VIEW People
AS
    SELECT
        id, --int
        name, --varchar(20)
        birthdate --datetime
    FROM SomeTable

如果我想将其从视图更改为物理表,有没有办法创建具有相同布局的表?

换句话说,我想采用该视图并创建一个像这样的表:

CREATE TABLE People(
    id int,
    name varchar(20),
    birtdate datetime
)

...但不必手动写出该查询。

这当然是一个人为的例子。视图有很多字段,包含很多不同的数据类型,因此很难手动完成。

【问题讨论】:

【参考方案1】:

怎么样

SELECT * INTO MyNewTable FROM MyView 

如果你不想要内容,只需要结构

SELECT * INTO MyNewTable FROM MyView WHERE 1 = 2

【讨论】:

谢谢。我想这会很简单。 +1,但请注意,在某些情况下,尤其是在使用返回 null 的计算字段时,SQL 不会为您期望的字段选择类型。在这种情况下,您可以在字段上使用显式转换来解决问题。【参考方案2】:
SELECT *
INTO People_Table
FROM People_View

【讨论】:

【参考方案3】:

Select * INTO PeopleTable FROM People

【讨论】:

语法错误。 INTO 必须在 FROM 之前。

以上是关于有啥方法可以创建与 SQL Server 2005 中的视图具有相同布局的表?的主要内容,如果未能解决你的问题,请参考以下文章

微软的SQL Server 2005与SQL Server 2008有啥区别?学习选哪个好?

Access 2003:从 SQL Server 2005 切换到 SQL Server 2012 有啥并发症吗?

SQL SERVER 2005 中的维护计划有啥用

Sql Server 中的大事务,有啥问题吗?

有啥方法可以将 SQL Server 的 dbo.HashPasswordString() 与类似于 md5() 的 PHP 一起使用?

将现有 SQL Server 2005 数据库中的数据类型 varchar 更改为 nvarchar。有啥问题吗?