【发布时间】:2013-01-06 13:02:53
【问题描述】:
有谁知道我在这里做错了什么,我有一个从远程源获取货币数据的网页,我获取数据并通过存储过程将其插入到 sql 数据库中。如果我将截断放在插入语句的前面,它会截断表并插入最后一条记录。 如果我删除截断,它会插入所有记录。
即
truncate table tblTablename;
insert into tblTablename
(columns)
values
(data)
上面将插入289条记录中的最后一条记录。
如果我删除截断,则插入所有 289 条记录。
我曾尝试使用 waitfor 1 秒钟,但也无法正常工作。
我不知道还能做什么,所以任何帮助将不胜感激
在网页中我有一个 foreach 循环
乔治
/---------- SQL代码-----
ALTER PROCEDURE [dbo].[atSP_InsertCurrency]
-- Add the parameters for the stored procedure here
@CurrencyCountry VarChar(150),
@CurrencyRate VarChar(150),
@UpdateSuccessFail INT OUTPUT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
TRUNCATE TABLE [dbo].[at_CurrencyRates];
WAITFOR DELAY '000:00:01'
INSERT INTO [dbo].[at_CurrencyRates]
(
[CurrencyCode],
[CurrencyExchangeRate]
)
VALUES
(
@CurrencyCountry,
@CurrencyRate
)
IF(@@ROWCOUNT > 0)
BEGIN
select @UpdateSuccessFail = '1'
END
ELSE
BEGIN
select @UpdateSuccessFail = '0'
END
END
【问题讨论】:
-
请发布您的实际代码。
insert into tblTablename (columns) values (data)只插入 1 行,除非您有多个项目用逗号分隔。 -
您这里显示的代码添加了一条记录,而不是289。您可以发布添加289记录的代码!
-
或者你可能调用你的存储过程 289 次?
标签: sql-server sql-server-2008 tsql stored-procedures