2009-12-20 1 views
1

В моей таблице SQL Server есть между этими столбцами.SQL Server: Как получить значение для строки, которую я вставил?

AutoID который IdentitySpecification значение ИСТИНА и GuidKey, который имеет значение по умолчанию (NEWID())

AutoID GuidKey 
1  f4rc-erdd 
2  gedd-rrds 

Есть ли способ получить GuidKey из строки вставленный?

Мне нужно что-то вроде Scope_Identity(), с той разницей, что я не хочу получать содержимое AutoID, но столбец GuidKey.

ответ

5

Sql Server 2005/2008

INSERT INTO myTable (SomeColumn) 
    OUTPUT INSERTED.GuidKEY 
VALUES ('SomeData') 
+0

Что делать, если у вас есть несколько столбцов, в которых хранится значение guid? – Tebo

0

Sure:

SELECT GuidKEy FROM [Table] WHERE AutoID= scope_identity() 
0

Вы можете сделать следующее:

DECLARE @TempTable TABLE (GuidKey UNIQUEIDENTIFIER) 

INSERT INTO YourTable(Columns) 
    OUTPUT INSERTED.GuidKey INTO @TempTable(GuidKey) 
    VALUES(YourVALUES) 

Это будет вставить вставленный GuidKey в @TempTable. Затем вы можете вывести значение из этой таблицы.

0

Для uniqueidentifier я сделать следующим образом:

DECLARE @ID uniqueidentifier 
SET @ID = newId() 

... 

Тогда я использовать @ID в моей вставной заявлении. Наконец, я возвращаю значение с помощью SELECT @ID или RETURN @ID