SQL Server 2005 - T-SQL - как получить GUID в качестве значения скалярной функции - PullRequest
0 голосов
/ 23 июня 2011

Я пытался написать такой код как

CREATE PROCEDURE DBO.GENCODE
AS
BEGIN

SELECT NEWID() AS GUID

END
GO

Дело в том, что эта процедура не возвращает значение var, поэтому я не могу использовать его для вставки. Поэтому мой вопрос ... Как сделать возможный код вроде

DECLARE @code VARCHAR(MAX)
SET @code = DBO.GENCODE()

    INSERT INTO TABLEA(CODE)
    VALUES(@code)

А этот рабочий фрагмент как версия ...

DECLARE @code VARCHAR(MAX)
SET @code=(SELECT NEWID() AS GUID)
INSERT INTO TABLEA(CODE)
VALUES(@code)

Любые полезные комментарии приветствуются

Ответы [ 3 ]

2 голосов
/ 23 июня 2011

http://msdn.microsoft.com/en-us/library/ms190348.aspx

INSERT INTO TABLEA(CODE)
VALUES (NEWID())
1 голос
/ 23 июня 2011
INSERT INTO TABLEA(CODE)
    EXEC DBO.GENCODE

Я отвечаю на вопрос буквально, потому что я предположил бы, что внутри хранимой процедуры есть более сложная логика, чем эта.

Правка для редактирования вопроса: Вы должны либо использовать INSERT/ EXEC трюк, который я покажу выше, или используйте скалярный UDF.Это невозможно сделать с помощью хранимой процедуры.

0 голосов
/ 27 июня 2011

Пока что я доволен этим кодом, потому что он работает нормально и генерирует случайный код

DECLARE @code VARCHAR(MAX)
SET @code=(SELECT NEWID() AS GUID)
INSERT INTO TABLEA(CODE)
VALUES(@code)

Но все же я надеюсь, что он будет работать как функция.Может быть, чуть позже:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...