久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

使用用戶定義的表類型在 SQL 中插入和更新

Insert and Update in SQL Using User-Defined Table Type(使用用戶定義的表類型在 SQL 中插入和更新)
本文介紹了使用用戶定義的表類型在 SQL 中插入和更新的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

以下是我創(chuàng)建的新數(shù)據(jù)類型.

Following is new data type that I created.

CREATE TYPE [dbo].[UpdateHotelTableType] AS TABLE(
    [ID] [int] NULL,
    [HotelID] [int] NULL,
    [FromDate] [datetime] NULL,

)

以下是我使用上述數(shù)據(jù)類型的存儲(chǔ)過程.

Following is my stored procedure that I used the above datatype.

ALTER PROCEDURE [dbo].[SP_Hotel_Info_Update]
     -- Add the parameters for the stored procedure here
    @XHotelInfoDetails UpdateHotelTableType READONLY,

AS
BEGIN

    Update dbo.HotelInfo
    SET 
    FromDate = r.FromDate,
    from @XHotelInfoDetails r
    Where HotelInfo.ID = r.ID

END

這適用于數(shù)據(jù)庫中的更新結(jié)果.但我想檢查 id 是否存在,如果 id 不存在,則將該行插入表中.否則更新當(dāng)前記錄.在這里,我正在發(fā)送要更新的數(shù)據(jù)列表.

This is working fine for update results in database. But I want to check whether the id is exists and if the id is not exists insert the row in to the table. otherwise update current record. In here I am sending the list of data for update.

誰能幫我重新創(chuàng)建存儲(chǔ)過程,通過檢查ID是否存在來插入數(shù)據(jù).

Can any one help me to recreate the stored procedure to insert the data too by checking the existence of ID.

推薦答案

使用 MERGE:

根據(jù)與源表的聯(lián)接結(jié)果對(duì)目標(biāo)表執(zhí)行插入、更新或刪除操作.例如,您可以通過插入、更新或刪除行來同步兩個(gè)表在一個(gè)表中基于在另一表中發(fā)現(xiàn)的差異.

Performs insert, update, or delete operations on a target table based on the results of a join with a source table. For example, you can synchronize two tables by inserting, updating, or deleting rows in one table based on differences found in the other table.

ALTER PROCEDURE [dbo].[SP_Hotel_Info_Update]
     -- Add the parameters for the stored procedure here
    @XHotelInfoDetails UpdateHotelTableType READONLY,

AS
BEGIN

    MERGE dbo.HotelInfo AS trg
    USING @XHotelInfoDetails AS src
      ON src.ID = trg.ID
     WHEN MATCHED THEN
       UPDATE SET FromDate = src.FromDate
     WHEN NOT MATCHED BY TARGET THEN
       INSERT (col1, col2, ...)
       VALUES (src.col1, src.col2, ...);
END

在我的數(shù)據(jù)表中,可以有新添加的行以及已刪除的行.那么如何比較 id 并從 hotelinfo 表中刪除行?

In my datatable, there can be newly added rows as well as deleted rows. So how can I compare the id and delete rows from hotelinfo table?

您可以添加新子句:

WHEN NOT MATCHED BY SOURCE [ AND <clause_search_condition> ]  
     THEN DELETE;

在特定條件下從目標(biāo)中刪除數(shù)據(jù).

with specific condition to delete data from target.

這篇關(guān)于使用用戶定義的表類型在 SQL 中插入和更新的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Sql server table usage statistics(Sql server 表使用情況統(tǒng)計(jì))
Relative path in t sql?(t sql中的相對(duì)路徑?)
Getting the last record in SQL in WHERE condition(在 WHERE 條件下獲取 SQL 中的最后一條記錄)
Query to get XML output for hierarchical data using FOR XML PATH in SQL Server(在 SQL Server 中使用 FOR XML PATH 查詢以獲取分層數(shù)據(jù)的 XML 輸出)
T-SQL IF statement embedded in a sum() function(嵌入在 sum() 函數(shù)中的 T-SQL IF 語句)
Table vs Temp Table Performance(表與臨時(shí)表性能)
主站蜘蛛池模板: 免费国产一区二区 | 国产精品自产av一区二区三区 | 亚洲一区二区在线免费观看 | 久草综合在线 | 99亚洲视频| 色综合久久天天综合网 | 亚洲www啪成人一区二区麻豆 | 妹子干综合 | 国产日韩欧美在线 | 国产精品中文 | 亚洲第一成人影院 | 日韩在线免费观看视频 | 中文字幕综合 | 欧美一区不卡 | 日本在线看片 | 亚洲激情第一页 | 99re视频精品 | 成人免费观看网站 | 国产一区欧美 | 视频一区二区三区四区五区 | 91免费观看国产 | 精品国产欧美 | 亚洲欧美一区二区三区国产精品 | 久久久精彩视频 | 国产欧美久久一区二区三区 | 欧美一区2区三区4区公司二百 | 欧美性乱 | 一区二区三区中文字幕 | 亚洲一区二区三区观看 | 日韩精品在线网站 | 一级毛片免费看 | 久久久www成人免费精品 | 日本小电影网站 | 99精品欧美一区二区三区 | 综合久久综合久久 | 日韩高清中文字幕 | 无码一区二区三区视频 | 国产精品成人在线播放 | 久久高清免费视频 | 日韩一二三区视频 | 91在线一区 |