SORU
12 HAZİRAN 2012, Salı


Nasıl bir INSERT deyimi kullanın'ÇIKIŞ tümcesi kimlik değerini almak için s?

Eğer bir ınsert deyimi gibi kalırsam:

INSERT INTO MyTable
(  
  Name,
  Address,
  PhoneNo
)
VALUES
(
  'Yatrix',
   '1234 Address Stuff',
   '1112223333'
)

Nasıl @var INT yeni bir satır kimlik değerini (Id) denilen ÇIKIŞ maddesini kullanarak ayarlarım? EKLENEN koyarak örnekler gördüm.Tablo değişken adı, örneğin, ama bir tablo olmayan bir değişken içine giremiyorum.

OUPUT INSERTED.Id AS @var, SET @var = INSERTED.Id, denedim ama hiçbiri çalıştı.

Şimdiden teşekkürler.

CEVAP
12 HAZİRAN 2012, Salı


Ya da yeni eklenen KİMLİĞİ SSMS bu konsol için çıkış olabilir:

INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')

Kullanabilirsiniz bu da-örneğin C#, ne zaman ihtiyacınız almak KİMLİĞİNİ geri arama uygulaması - sadece yürütme SQL sorgu ile .ExecuteScalar() (yerine .ExecuteNonQuery()) okuma sonuç ID geri.

Veya T-SQL içinde yeni eklenen ID yakalama gerekiyorsa (daha sonra daha fazla işlem için, örneğin, bir tablo değişkeni oluşturmanız gerekir:

DECLARE @OutputTbl TABLE (ID INT)

INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')

Bu şekilde, @OutputTbl içine birden fazla değer koymak ve bunlar üzerinde daha fazla işlem yapabilirsiniz. Ayrıca "" geçici tablo (#temp) ya da "kalıcı" tablo "" işte. hedef çıktı olarak normal bir şekilde kullanabilirsin

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Awesomesauce Network

    Awesomesauce

    4 EKİM 2012
  • discokatze

    discokatze

    23 EYLÜL 2009
  • MugenPowerBatteries

    MugenPowerBa

    8 EKİM 2010