2017-09-04 1 views
0

テーブルにチェックがあるか、テーブルに存在しない場合は、テーブルに挿入します。 存在しない場合は挿入し、存在しない場合は挿入します。 @html.nodesこの例では、sqlのテーブルに挿入する前にチェックする方法は?

INSERT INTO Database.[dbo].[TBL_AllProduct] 
        ([Product_Name] 
        ,[Product_URL]) 

SELECT 
     t.v.value('(span[2]/a/text())[1]','nvarchar(max)') as [Name], 
     t.v.value('(span[2]/a/@href)[1]','nvarchar(max)') as [URL] 
FROM @html.nodes('div/div') as t(v) 

チェック[name]column[product_name][name]valueをexsitない場合は、テーブルに挿入します。 @html.nodes

t(v)には、1行だけでなく、任意の行が含まれます。

輸出用exmaple t(v)

-------------- 
    NAME 
-------------- 
    piter 
    alex 
    sony 
    telephon 
     . 
     . 
     . 
+1

とそうでない場合は、すべてでは何もしないか、アップデートを行う存在しますか? – GuidoG

+0

存在しない場合は何も行いません。 – HIV88

答えて

1
DECLARE @Name Nvarchar(50) 

SET @Name=t.v.value('(span[2]/a/text())[1]','nvarchar(max)') as [Name] FROM @html.nodes('div/div') as t(v) 


IF NOT EXISTS (SELECT Product_Name FROM Database.[dbo].[TBL_AllProduct] WHERE [email protected]) BEGIN 

    INSERT INTO Database.[dbo].[TBL_AllProduct] 
         ([Product_Name] 
         ,[Product_URL]) 

    SELECT 
      t.v.value('(span[2]/a/text())[1]','nvarchar(max)') as [Name], 
      t.v.value('(span[2]/a/@href)[1]','nvarchar(max)') as [URL] 
    FROM @html.nodes('div/div') as t(v) 

END 
+1

''列名 '' [product_name] 'の' [name] 'の' value'を抜けていなければ '@ html.nodes'の' [name] 'をチェックしてからテーブルに挿入してください。 '@ html.nodes'から選択してください – HIV88

+0

ありがとうt(v)は1行に何も入っていません。 – HIV88

+0

???????????????? – HIV88

関連する問題