2012-03-20 20 views
2

私は、ユーザー定義テーブル型を持っているが、主キーSQL Server、ユーザー定義のテーブルタイプから更新要素を削除する方法

CREATE TYPE [dbo].[IntType] AS TABLE(
    [T] [int] NOT NULL, 
    PRIMARY KEY CLUSTERED 

として、私はIntTypeのすべてのキー(int)に基づいてUPDATEをしたい、@TT dbo.IntType readonly, INTTYPEがintのバッチであると言うことができます、そして新しいINSERTキーの行(int)がデータベースに存在しません(アップアップ)

"UPDATED"キー(int)を簡単に削除する方法はありますか?その後、私は残りを挿入することができます。 (または、SQL Server 2010のスーパーワンラインアップサーグがある場合)

答えて

2

MERGEステートメントを使用してください。

http://technet.microsoft.com/en-us/library/bb510625.aspx

私は一緒に何かを置くことができるなら、私は見てみましょう。

EDIT:例

MERGE INTO [TargetTable] AS T 
USING (SELECT l.T AS 'id' FROM @list l) AS S 
ON (T.[id] = S.[id]) 
WHEN MATCHED THEN 
    UPDATE SET 
     T.updated = 1 
WHEN NOT MATCHED THEN 
    INSERT VALUES ([insert value into each column of target table]); 

EDIT 2:パラメータ@listはあなたがIDを持つ

+0

聖なる牛を埋めていることで渡されたリストであるが、それは簡単だった、私は –

+1

それを試して待つことができませんこれは本当にいいですが、これは2008年以降のみ動作します。あなたは2010年を使用しているので、私はあなたが大丈夫だろうと考えました。 – spinon

+2

SQL Server 2010とは何ですか? –

関連する問題