@@IDENTITY
возвраты последнее значение идентификационных данных, сгенерированное для любой таблицы на текущей сессии, через все объемы. необходимо быть осторожными здесь , так как это через объемы. Вы могли получить значение от триггера вместо Вашего текущего оператора.
SCOPE_IDENTITY()
возвраты последнее значение идентификационных данных, сгенерированное для любой таблицы на текущей сессии и текущей области. Обычно, что Вы хотите использовать .
IDENT_CURRENT('tableName')
возвраты последнее значение идентификационных данных, сгенерированное для определенной таблицы на любой сессии и любом объеме. Это позволяет Вам определить, от какой таблицы Вы хотите значение, в случае, если два выше не вполне, в чем Вы нуждаетесь ( очень редкий ). Кроме того, как Парень Старбак упомянутый, "Вы могли использовать это, если Вы хотите получить текущее значение ИДЕНТИФИКАЦИОННЫХ ДАННЫХ для таблицы, в которую Вы не вставили запись".
OUTPUT
пункт INSERT
оператор позволит Вам получить доступ к каждой строке, которая была вставлена через тот оператор. Так как это ограничено по объему к определенному оператору, это [еще 1122] простой , чем другие функции выше. Однако это немного [еще 1123] подробный (необходимо будет вставить в табличную переменную / временную таблицу и затем запросить тот), и это дает результаты даже в ошибочном сценарии, где оператор откатывается. Однако если Ваш запрос использует параллельный план выполнения, это только гарантировано метод для получения идентификационных данных (за исключением выключения параллелизма). Однако это выполняется прежде триггеры и не может использоваться для возврата сгенерированных триггером значений.
Это можно сделать. Вот как:
import Boo.Lang.Compiler.Ast
import Boo.Lang.PatternMatching
macro card(name as string):
klass = [|
class $(ReferenceExpression(name)):
def constructor():
Name = $name
|]
klass.Members.Add(card["effect"])
klass.GetConstructor(0).Body.Add(card["effect-ctor"] as Expression)
yield klass
macro effect(eff as ReferenceExpression):
card["effect"] = [|
class $eff (Effect):
pass
|]
card["effect-ctor"] = [| Effects.Add($(eff)()) |]
Благодарим Седрика Вивье за помощь мне в группе Google .