2012-02-14 77 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

相關問題