Как вставить в таблицу без записи столбцов в SQL Server 2005? - PullRequest
2 голосов
/ 15 сентября 2011

В частности, у меня есть функция со следующей подписью:

CREATE FUNCTION [dbo].[GetLevelData]()
RETURNS @level TABLE (
    [Level]                 INT PRIMARY KEY IDENTITY,
    [Source Column Name]    AS '{Option Level ' + CAST([Level] AS VARCHAR(10)) + '}',
    [Parent Column Name]    AS '[Parent_L' + CAST([Level] AS VARCHAR(10)) + '_Option]'
)

Как вставить в него строки без изменения определения таблицы ?

1 Ответ

3 голосов
/ 15 сентября 2011

В теле определения функции используйте

INSERT @level DEFAULT VALUES;

для создания новой строки в возвращаемой таблице.

Чтобы сделать несколько строк одновременно, вы можете сделать это:

CREATE FUNCTION [dbo].[GetLevelData]()
RETURNS @level TABLE (
    [Level]                 INT PRIMARY KEY IDENTITY,
    [Source Column Name]    AS '{Option Level ' + CAST([Level] AS VARCHAR(10)) + '}',
    [Parent Column Name]    AS '[Parent_L' + CAST([Level] AS VARCHAR(10)) + '_Option]'
)
AS
BEGIN
    WHILE ISNULL(SCOPE_IDENTITY(), 0) < 5    -- to end up with 5 rows
        INSERT @level DEFAULT VALUES

    RETURN
END

немного подлый, но работает

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