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
。
有人可以帮助我吗?
提前致谢。
我想你只是说
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
你做事的顺序是错误的。 您应该首先创建 PostalDB 表并使用 PostalDBId 之类的名称作为主键进行填充。 PostalDBId 实际上应该毫无意义。 它不应该是邮政编码或类似的东西。
然后,您的 Profile_Updated 需要一个不同的主键,与 PostalDB 表无关。 您还需要另一个字段作为 PostalDb 表的外键。
也许这会起作用:
SELECT DISTINCT City, State, Postalcode
INTO dbo.PostalDB
FROM dbo.Profile_Updated
INTO
子句将使用源中的属性创建一个新表。稍微进行网络搜索就会发现许多其他可能的解决方案。
您可以使用 SELECT INTO 语句基于现有表创建新表。
SELECT City, State, Postalcode
INTO PostalDB
FROM Profile_Updated
这将创建一个名为 PostalDB 的新表,其中包含 City、State 和 Postalcode 列,并使用 Profile_Updated 表中相应列的数据填充该表。
或者,您可以将 CREATE TABLE 语句与 SELECT 语句结合使用来获得相同的结果:
CREATE TABLE PostalDB
(
City VARCHAR,
State VARCHAR,
Postalcode INT
)
INSERT INTO PostalDB (City, State, Postalcode)
SELECT City, State, Postalcode
FROM Profile_Updated
请注意,在第一个示例中,新表中列的“数据类型”将根据原始表中列的数据类型“自动确定”。在第二个示例中,您需要显式指定数据类型。 此外,如果您想创建与原始表相同数据类型的表,您可以使用以下语法:
SELECT City, State, Postalcode
INTO PostalDB
FROM Profile_Updated
WITH ( City VARCHAR, State VARCHAR, Postalcode INT )
这将创建具有
的表。
或者,您也可以使用以下语法:
CREATE TABLE PostalDB
(
City VARCHAR,
State VARCHAR,
Postalcode INT
)
INSERT INTO PostalDB (City, State, Postalcode)
SELECT City, State, Postalcode
FROM Profile_Updated
所有这些方法都将创建一个名为 PostalDB 的新表,其中包含 City、State 和 Postalcode 列,并使用 Profile_Updated 表中相应列的数据填充该表。