如何从现有表创建新表?

时间:2013-04-14 15:36:11

标签: sql sql-server sql-server-2005

dbo.Profile_Updated
  (
     BusinessName VARCHAR,
     ContactName  VARCHAR,
     Address      VARCHAR,
     City         VARCHAR,
     State        VARCHAR,
     Postalcode   INT PRIMARY KEY,
     Phonenumber  VARCHAR
  ) 

这是我当前的表,但现在我想从现有的Profile_Updated表列创建新表,我的意思是新表(PostalDB)需要包含基于City, State, Postalcode列的列在Profile_Updated表格上。

任何人都可以帮助我吗?

提前致谢。

3 个答案:

答案 0 :(得分:3)

我认为你的意思是SELECT INTO

SELECT City, State, Postalcode
  INTO dbo.PostalDB
  FROM dbo.Profile_Updated;

CREATE UNIQUE CLUSTERED INDEX p ON dbo.PostalDB(PostalCode);
CREATE INDEX ... -- you'll need to fill in these details

答案 1 :(得分:1)

你正在以错误的顺序做事。您应该首先使用PostalDBId这样的名称创建并填充PostalDB表作为主键。 PostalDBId应该毫无意义。它不应该是邮政编码或类似的东西。

然后,您的Profile_Updated需要一个不同的主键,这与PostalDB表无关。您还需要另一个作为PostalDb表的外键的字段。

答案 2 :(得分:0)

也许这会奏效:

SELECT DISTINCT City, State, Postalcode
INTO dbo.PostalDB
FROM dbo.Profile_Updated

INTO子句将使用源中的属性创建一个新表。一点网络搜索将揭示许多其他可能的解决方案。