如果您决定不找到新的主机(不要怪罪您),您可以使用类似String.Split()
给您一个数组的方法(拆分空格字符)。然后,您会将所有这些字符串添加到“单词”表或类似的东西中。建立一个单一的“单词”表和一个链接表会更合适,如下所示:
create table TheWords
(
TheWord NVARCHAR(32) NOT NULL ,
CONSTRAINT PKC_TheWords
PRIMARY KEY CLUSTERED ( TheWord ) ,
TheWordID INT IDENTITY (1,1) NOT NULL
)
create table WordsInMsgBody
(
MsgBodyID INT NOT NULL ,
CONSTRAINT FK_MsgBodyID@WordsInBody
FOREIGN KEY ( MsgBodyID )
REFERENCES dbo.MsgBody ( MsgBodyID ) ,
TheWordID INT NOT NULL ,
CONSTRAINT FK_TheWordID@WordsInBody
FOREIGN KEY ( TheWordID )
REFERENCES dbo.TheWords ( TheWordID ) ,
CONSTRAINT PKC_WordsInBody
PRIMARY KEY CLUSTERED ( MsgBodyID , TheWordID )
)
如果您对消息中包含多少特定单词感兴趣,可以省略最后一个约束 ( PKC_WordsInBody ) 。如果不是,请将其设为主键并仅将单词的单个实例插入链接表。
但是,您将不得不做一些工作来实现这一点 - 解析消息正文,插入以前从未见过的单词,并将记录插入链接表中需要工作。