有啥方法可以创建与 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 的 dbo.HashPasswordString() 与类似于 md5() 的 PHP 一起使用?