Как написать код SQL в INSERT (или UPDATE) массив значений (возможно, сопутствующий массив имен полей или с матрицей с ними обоими) без простой итерации?Как вставить массив значений в SQL Server 2005?
ответ
Я строю список как строку xml и передаю его сохраненным процессам. В SQL 2005 он имеет расширенные функциональные возможности xml для анализа XML-массива и выполнения объемной вставки.
проверить этот пост: Passing lists to SQL Server 2005 with XML Parameters
Я понимаю, что вы говорите о написании хранимой процедуры, чтобы принять массив значений
В SQL Server 2005 вы должны использовать переменную XML
SQL 2008 добавляет поддержку табличной переменной в качестве параметров
Здесь вы можете найти хорошие примеры передачи таблицы в хранимую процедуру как XML и как table variable (SQL Server 2008)
Если ваши данные уже в базе данных, вы можете использовать синтаксис INSERT SELECT
. Это немного отличается от вставки значений одного ...
INSERT recipient_table (field1, field2)
SELECT field1_from, field2_from
FROM donor_table
WHERE field1_from = 'condition'
Простой способ объединить значения в список и передать его зр.
В sp использовать dbo.Split udf для преобразования обратно в resultset (таблица).
Создать эту функцию:
CREATE FUNCTION dbo.Split(@String nvarchar(4000), @Delimiter char(1))
returns @Results TABLE (Items nvarchar(4000))
as
begin
declare @index int
declare @slice nvarchar(4000)
select @index = 1
if @String is null return
while @index != 0
begin
select @index = charindex(@Delimiter,@String)
if @index !=0
select @slice = left(@String,@index - 1)
else
select @slice = @String
insert into @Results(Items) values(@slice)
select @String = right(@String,len(@String) - @index)
if len(@String) = 0 break
end return
end
, а затем попробовать:
select * from dbo.split('a,b,c,d,e,f,g,h,i,j,k,l', ',')
- 1. Как вставить время в SQl Server 2005?
- 2. Вставить запрос в SQL Server 2005
- 3. Вставить DateTime в SQL Server 2005
- 4. Вставить несколько значений с помощью INSERT INTO (SQL Server 2005)
- 5. заявление Вставить в SQL Server 2005
- 6. Несколько случайных значений в SQL Server 2005
- 7. Сохранение пользовательских значений в SQL Server 2005
- 8. Вставка значений с запятыми в SQL Server 2005
- 9. Как вставить в таблицу в sql server 2005
- 10. Как вставить данные XML в таблицу в SQL Server 2005
- 11. Sql Server 2005 - Вставить Update Trigger - Получить обновление, вставить строку
- 12. Как вставить данные varchar в поле datetime (SQL Server 2005)?
- 13. Как обновить (обновить или вставить) в SQL Server 2005
- 14. Вставить список значений в sql server 2008
- 15. Как сохранить Kannada в SQL Server 2005
- 16. Как подключиться и вставить ASP с SQL Server 2005?
- 17. SQL Server 2005 XML Queries
- 18. SQL Server - вставить, используя несколько значений
- 19. Как настроить SQL Server 2005
- 20. SQL Server 2005 inserting image
- 21. SQL Server 2005
- 22. Sql Server 2005 AutoCompletion
- 23. Шифрование SQL Server 2005
- 24. SQL Server 2005
- 25. Вставить триггер SQL Server 2005, не вставляя достаточно записей
- 26. Безопасность SQL Server 2005
- 27. Сделки SQL Server 2005
- 28. SQL Server 2005 - row_number()
- 29. Триггер шифрования SQL Server 2005
- 30. SQL Server 2005 Репликация
Да, это, безусловно, один из лучших вариантов. Я использовал этот подход как стандартный способ передачи списка значений в хранимую процедуру. – User 2009-02-06 11:11:35