2016-03-04 88 views
-2

我試圖插入KeywordSearchResults表中。我在嘗試插入SearchResults表時遇到錯誤。我在插入語句時出錯

Declare @UrlList SearchResultList READONLY 
declare @KeywordID int 

insert into Keyword(Keyword,Domain_ID,RunDate)values(@Keyword,@Domain_ID,@RunDate) 
set @KeywordID=IDENT_CURRENT('Keyword') 


insert into SearchResults(SearchedURL,Keyword_ID,IsClient) 
select (select SearchedURL from @UrlList),@KeywordID as Keyword_ID,1 as IsClient 

我收到了下面給出的錯誤。

子查詢返回的值超過1。當子查詢遵循=,!=,<,< =,>,> =或當子查詢用作表達式時,這是不允許的。 該聲明已被終止。

<table><tbody><tr><th>SearchedURL_ID</th><th>SearchedURL</th><th>Keyword_ID</th><th>IsClient</th></tr><tr><td>8</td><td>http://www.revanadigital.com/</td><td>8</td><td>NULL</td></tr><tr><td>9</td><td>http://www.zoominfo.com/c/WebMetro-Inc/41713725</td><td>8</td><td>NULL</td></tr><tr><td>10</td><td>http://www.revanadigital.com/who-we-are/careers/</td><td>8</td><td>NULL</td></tr><tr><td>11</td><td>https://www.glassdoor.com/Reviews/WebMetro-California-Reviews-E259626.htm</td><td>8</td><td>NULL</td></tr><tr><td>12</td><td>http://www.yelp.com/biz/webmetro-san-dimas</td><td>8</td><td>NULL</td></tr><tr><td>13</td><td>https://www.crunchbase.com/organization/webmetro</td><td>8</td><td>NULL</td></tr></tbody></table>

+0

錯誤信息顯示:'(選擇SearchedURL ..'應該返回一個值,不能在該列中插入一個值列表 –

+0

你能建議如何插入多個值嗎? –

+2

你已經有兩個答案,全部源代碼插入_multiple values_。或者這不是你想要的,你的目標是將'@ urllist'中的所有url鏈接成一個字符串? –

回答

2

與獲得@keywordid,那麼你需要這個:

insert into SearchResults(SearchedURL,Keyword_ID,IsClient) 
select SearchedURL,@KeywordID as Keyword_ID,1 as IsClient 
from @UrlList 

如果不是那麼你必須修改(select SearchedURL from @UrlList)子查詢,以確保它只返回一行。添加TOP 1ORDER BY或類似的東西。

2

你的第二個插入查詢應該是這樣的 -

INSERT INTO SearchResults (SearchedURL, Keyword_ID, IsClient) 
    SELECT SearchedURL ,@KeywordID ,1 FROM @UrlList 

你可以參考這個MSDN鏈接 - 如果你要插入的所有URL How to use TVP