如何在沒有簡單迭代的情況下將SQL代碼寫入INSERT(或更新)一個值數組(或許有一個字段名稱的隨之而來的數組,或與它們的矩陣)?如何在SQL Server 2005中插入值的數組?
2
A
回答
12
我將列表構造爲一個xml字符串並將其傳遞給存儲的procs。在SQL 2005中,它增強了xml功能來解析xml並執行批量插入。
檢查這個帖子: Passing lists to SQL Server 2005 with XML Parameters
1
我明白你說的是寫存儲過程來接受值數組
在SQL Server 2005中,你將需要使用XML變量
SQL 2008添加對錶變量的支持作爲參數
在這裏您可以找到將表傳遞給存儲過程的好例子,如XML和table variable(SQL Server 2008)
1
如果您的數據已經在數據庫中,則可以使用INSERT SELECT
語法。它與INSERT VALUES其中一個稍有不同...
INSERT recipient_table (field1, field2)
SELECT field1_from, field2_from
FROM donor_table
WHERE field1_from = 'condition'
2
簡單的方法將值連接成列表並將其傳遞給sp。
在sp中使用dbo.Split udf將其轉換回結果集(表)。
創建此功能:
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. 如何在Visual Studio中插入插入/ SQL Server 2005
- 4. Sql Server 2005 - 插入如果不存在
- 5. 單獨在SQL Server 2005中插入數字值
- 6. 在MS SQL Server 2005中插入IGNORE?
- 7. 在SQL Server 2005中批量插入?
- 8. SQL Server 2005插入圖像
- 9. 如何將XML數據插入到表中的SQL Server 2005
- 10. 如何在SQL Server 2005中只插入非重複的行?
- 11. 在SQL Server 2005中插入行後的主鍵值
- 12. 如何將61000個數據對象插入到sql server 2005中?
- 13. 批量插入到SQL Server 2005中
- 14. 如何在SQl Server 2005中插入時間?
- 15. 如何在SQL Server 2005中插入當前日期時間
- 16. 如何在sql server 2005中編寫插入觸發器?
- 17. 逗號分隔值插入在SQL Server 2005中
- 18. 如何在SQL Server 2005的值插入查詢中使用select查詢
- 19. 組SQL Server中的第2005
- 20. SQL Server 2005的批量插入
- 21. SQL Server 2005/2008:在Transact-SQL的varbinary(max)列中插入文件
- 22. 如何插入來自Excel工作表數據到SQL Server 2005
- 23. 在SQL Server 2005中插入大量數據
- 24. SQL Server 2005中的XML數據導入
- 25. 如何使用c將行插入到SQL Server 2005中#
- 26. 如何根據SQL Server 2005中的條件返回一組值?
- 27. SQL Server 2005批量更新或插入
- 28. SQL Server 2005 - 大容量插入問題
- 29. SQL Server 2005 - 批量插入失敗
- 30. SQL Server 2005與外鍵衝突插入
是的,這絕對是最好的選擇之一。我一直在使用這種方法作爲將值列表傳遞給存儲過程的標準方法。 – User 2009-02-06 11:11:35