2012-02-14 48 views
0

我有一个SQL问题,我可以使用一些帮助。对于SQL还是有些新鲜的,并不太确定如何或是否可以做到,但我敢打赌它可以。SQL填充第二张表,同时将KeyId发回原始表

我有表A包含几列。特别是,colTxt有一长串的字符串文本,在某些情况下,它是同一个表/ colTxt中另一条记录的重复。

另一列是空白的,旨在存储需要从上面提到的字符串文本创建但不重复的第二个表(表B)的keyID。

因此,在某些情况下,在表A记录将引用表B的相同keyid的,因为字符串文本是在表A(外键)

同我需要动态建表中的B SQL。我认为我有表创建序列计算出来,它从表A的字符串复制到表B = tblStringText,并张贴ID回到表A,我坚持。

CREATE TABLE [dbo].[tblStringText](
[ID] [int] IDENTITY(1,1) NOT NULL, 
[tblROOTKey_ID] [smallint] NULL, 
[Short_Text] [nvarchar](255) NULL 

CONSTRAINT [PK_ID] PRIMARY KEY CLUSTERED 
(
[ID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,  ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 


GO 

任何帮助,将不胜感激。

回答

1

Asuming tblStringText是你的“表B”和列“Short_text”应该包含匹配的字符串,这可能完成你想要的:

INSERT INTO tblStringText(Short_Text) 
SELECT DISTINCT colTxt 
FROM tableA 

UPDATE tableA 
SET keyID = tblStringText.Id 
FROM tblStringText 
WHERE tableA.colTxt = tblStringText.Short_Text 
+0

它需要一些调整,但我终于得到它的感谢。我认为最大的问题是第二次从需要包含表A.所以它成为tblStringText,TableA – htm11h 2012-02-15 14:56:05

相关问题