SQL Server:将列提取到表中

Dav*_*ave 0 sql t-sql sql-server ddl dml

我有一个表格,我想要提取出一列并放入一个单独的表格中.

例如,假设我有一个名为Contacts的表.Contacts有一个名为Name的列,用于存储字符串.现在我想将名称拉出到另一个名为Name的表中,并将Contact.Name列链接到Name表的Id.

我只能用SQL来做这件事.关于最佳方式的任何想法?

如果我能澄清一下,请告诉我,谢谢!

[编辑]一个问题是不同的联系人可以绑定到相同的名称.所以当不同联系人具有相同的名称和它被导出的名称表将只拥有该名称的一个唯一的行和所有联系人将指向该行.我想如果我实际上正在编写一本联系簿,这是没有意义的,但我只是用它来说明我的问题.

Cad*_*oux 5

CREATE TABLE Name (NameID int IDENTITY(1, 1), [Name] varchar(50))

INSERT INTO Name ([Name])
SELECT DISTINCT [Name]
FROM Contact

ALTER TABLE Contact
    ADD COLUMN NameID int

UPDATE Contact
SET NameID = [Name].NameID
FROM Contact
INNER JOIN [Name]
    ON Contact.[Name] = [Name].[Name]

ALTER TABLE Contact
    DROP COLUMN [Name]
Run Code Online (Sandbox Code Playgroud)

然后添加外键约束等.