2015-12-29 34 views
-2

我已經有一個工作的存儲過程,從TABLETYPE在這個例子中使用SQL Server表類型更新存儲過程查詢 - 如何?

CREATE PROCEDURE [dbo].[tblDefQ_Detail_INSERT] 
    @Quotient_D Quotient_D READONLY 
AS 
BEGIN 
    SET NOCOUNT ON; 

    INSERT INTO Quotient_D ([q_id], [item_id], [item_name]) 
     SELECT 
      [q_id], [item_id], [item_name] 
     FROM 
      @Quotient_D 
END 

此存儲過程作爲編碼

CREATE TYPE [dbo].[Quotient_D] AS TABLE(
[q_id] [int] NULL, 
[item_id] [int] NULL, 
[item_name] [nvarchar](50) NULL 
) 

這工作得很好,從表型取值需要的數據等。

我現在想的是使用上

q_id 
+0

那麼什麼是你的問題這個WHERE子句,其值爲從該表型的UPDATE存儲過程? –

回答

1
CREATE PROCEDURE [dbo].[tblDefQ_Detail_UPDATE] 
    @Quotient_D Quotient_D READONLY 
AS 
BEGIN 
    SET NOCOUNT ON; 

    UPDATE original 
    SET item_id = temp.item_id, 
     item_name = temp.item_name 
    FROM @Quotient_D temp 
    JOIN Quotient_D original ON temp.q_id = original.q_id 
END 
+0

許多感謝名單我嘗試IIF有三排它複製每一行 –

+0

該商標後實施記錄;如果你的q_id在數據庫中不是唯一的/主鍵,使用相關的字段加入那裏 –

+0

它不插入額外的記錄如更新現有2,但第三次添加不工作 –

相關問題