Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как вставить записи в том же порядке?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4184
Есть функция, которая разбирает что-то и возвращает четыре строки, всегда в том же порядке.
Для простоты - пример:
CREATE FUNCTION [dbo].[splitstring]()
   RETURNS @t TABLE (nstr nvarchar(128)) AS
   BEGIN
      INSERT @t (nstr)  VALUES(N'vasya')
	  INSERT @t (nstr)  VALUES(N'vasin host')
	  INSERT @t (nstr)  VALUES(N'127.0.0.1')
	  INSERT @t (nstr)  VALUES(N'::1')
      RETURN
   END
GO

select * from [dbo].[splitstring]()


Как вставить выход этой функции в таблицу такого типа

declare @target table(prop_name nvarchar(128),prop_value nvarchar(128))



чтобы в результате было так, здесь имена проперти фиксированы изависят от порядка записи, выданной из функции

select * from  @target

prop_name prop_value
------------- --------
user_name  vasya
user_host    vasin host
IPv4           127.0.0.1
IPv6           ::1
4 июл 16, 13:33    [19366700]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить записи в том же порядке?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Порядка вставки не существует, существует порядок выборки.
4 июл 16, 13:35    [19366709]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить записи в том же порядке?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4184
Гавриленко Сергей Алексеевич
Порядка вставки не существует, существует порядок выборки.


Ясно, но в данном случае вопрос в том, как сопоставить имя проперти его значению, получаемому из функции в определенном порядке, это я и подразумевал по порядком вставки.
4 июл 16, 13:43    [19366737]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить записи в том же порядке?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ролг Хупин
Гавриленко Сергей Алексеевич
Порядка вставки не существует, существует порядок выборки.


Ясно, но в данном случае вопрос в том, как сопоставить имя проперти его значению, получаемому из функции в определенном порядке, это я и подразумевал по порядком вставки.
Пока вы не добавите в функцию поле, которое отвечает за порядок, то никак.
4 июл 16, 13:46    [19366750]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить записи в том же порядке?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4184
Гавриленко Сергей Алексеевич
Ролг Хупин
пропущено...


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


Да, можно, но не могу влезать в функцию.
Чтобы не тормозить, сделал так пока

declare @target table(id int identity, prop_name nvarchar(128),prop_value nvarchar(128))
insert into @target(prop_value) select nstr from [dbo].[splitstring]()
4 июл 16, 14:15    [19366887]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить записи в том же порядке?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ролг Хупин
Гавриленко Сергей Алексеевич
пропущено...
Пока вы не добавите в функцию поле, которое отвечает за порядок, то никак.


Да, можно, но не могу влезать в функцию.
Чтобы не тормозить, сделал так пока

declare @target table(id int identity, prop_name nvarchar(128),prop_value nvarchar(128))
insert into @target(prop_value) select nstr from [dbo].[splitstring]()
Гарантии порядка при генерации identity все равно нет.
4 июл 16, 14:28    [19366953]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить