【发布时间】:2016-04-23 11:45:25
【问题描述】:
我有两个表格:WordForm 和 WordDefinition:
CREATE TABLE [dbo].[WordForm] (
[WordFormId] VARCHAR (20) NOT NULL,
[WordId] VARCHAR (20) NOT NULL,
[Primary] BIT DEFAULT ((0)) NOT NULL,
[PosId] INT NOT NULL,
-- I want to move text data from this column into
-- the WordDefinition table column called Definition
-- and then I will remove the column from here later.
[Definition] VARCHAR (MAX) NULL,
[Sample] VARCHAR (MAX) NULL,
[Synonym] VARCHAR (100) NULL,
PRIMARY KEY CLUSTERED ([WordFormId] ASC),
CONSTRAINT [FK_WordFormPos] FOREIGN KEY ([PosId]) REFERENCES [dbo].[Pos] ([PosId]),
CONSTRAINT [FK_WordFormWord] FOREIGN KEY ([WordId]) REFERENCES [dbo].[Word] ([WordId])
);
CREATE TABLE [dbo].[WordDefinition]
(
[WordDefinitionId] INT IDENTITY (1, 1) NOT NULL,
[WordFormId] VARCHAR (20) NOT NULL,
[Definition] VARCHAR (MAX) NOT NULL
CONSTRAINT [PK_WordDefinition] PRIMARY KEY CLUSTERED ([WordDefinitionId] ASC),
)
最初创建 WordForm 表是为了保存单个定义,但现在我意识到每个 WordForm 可以有更多定义。
为了实现这一点,我添加了 WordDefinition 表。一个 WordForm 行到多个 WordDefinition 行。
但是现在我需要做的是遍历 WordForm 表并添加一个带有原始定义(来自 WordForm)的条目,并将其复制到 WordForm 中每一行的 WordDefinition 表中。
这是我只能使用 SQL 才能做到的事情,还是需要使用游标。任何有关如何执行此操作的帮助和建议将不胜感激。
【问题讨论】:
标签: sql-server sql-server-2014