簡體   English   中英

使用存儲過程將數組插入sql的表

[英]Insert an array to sql's table with stored procedure

我有這樣一張桌子:

keyword (table name)        
----------------    
kid   key   
----------------    
1     asp.net   
2     php   
3     C#‎   
4     vb

在webform頁面中,我有一個文本框,用戶可以插入如下字符串:

asp.net,php,C#‎,vb,css

我必須在另一個表中插入此字符串,如下所示:

p-tag (table name)
----------------
pid  kid
----------------
1    1
1    2
1    3
1    4


我必須首先檢查字符串中的那些單詞是否存在於關鍵字中。 如果是,請將它們插入到p-tag表中。 我可以使用C#代碼執行此操作,但我想使用存儲過程。
可能嗎?
注意:我的英語很弱,抱歉。

我建議將關鍵字作為表值參數傳遞。 請參閱此文章以了解有關它的更多信息 - 表值參數 關於如何使用它還有一個很好的C#示例。 然后通過單個查詢完成所需的操作相當容易。 首先為table-value參數創建一個類型:

    CREATE TYPE dbo.TableTypeName AS TABLE
        ( keyName nvarchar(50) )

然后在以下過程中使用它:

CREATE PROCEDURE sp_UpdateTags 
    (@tableParameter dbo.TableTypeName READONLY, @tagId INT)
AS
INSERT [p-tag](pid, kid)
SELECT @tagId, K.kid from @tableParameter tP
inner join [keyword] K on key = tP.keyName

這將僅插入關鍵字表中存在的值。

希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM