【发布时间】:2017-01-19 06:33:26
【问题描述】:
我正在创建一个 Web 应用程序,在该应用程序中我正在对我的存储过程执行一个选择命令,但我想将相同的提取数据插入到另一个表中。
所以我尝试做类似以下的事情
CREATE PROCEDURE profinalinstexpensesonid
(@from varchar(5000),
@to varchar(5000),
@trainer varchar(5000),
@sonvinid varchar(5000)
)
AS
BEGIN
INSERT INTO invoice(sonvinid, tid, date, brandname, zone, location, area, venuename, venue, instructore, amount)
SELECT
instructoreexpense.sonvinid,
sonvininsert.trainer,
CONVERT(VARCHAR, sonvininsert.date, 105) AS date,
sonvininsert.brandname,
SUBSTRING(sonvininsert.zone, 1, 1) AS zone,
sonvininsert.location,
sonvininsert.area,
companysonvinunitvenue.venuename,
sonvininsert.venue,
sonvininsert.instructore,
instructoreexpense.amount
FROM
instructoreexpense
LEFT OUTER JOIN
sonvininsert ON sonvininsert.sonvinid = instructoreexpense.sonvinid
AND sonvininsert.status = '0'
LEFT OUTER JOIN
finalinstructoreexpense ON finalinstructoreexpense.sonvinid = instructoreexpense.sonvinid
LEFT OUTER JOIN
companysonvinunitvenue ON companysonvinunitvenue.id = sonvininsert.comsonvinid
WHERE
sonvininsert.date BETWEEN CONVERT(DATETIME, @from, 105)
AND CONVERT(DATETIME, @to, 105)
AND sonvininsert.trainer = (SELECT empname
FROM trainerdetails
WHERE trid = @trainer)
AND instructoreexpense.sonvinid NOT IN (SELECT CAST(Item AS INTEGER)
FROM SplitString(@sonvinid, ','))
ORDER BY
instructoreexpense.sonvinid
END
当我执行像
这样的存储过程时exec profinalinstexpensesonid '01-01-2013','01-01-2017','andrews'
我收到以下错误
消息 8152,级别 16,状态 13,过程 profinalinstexpensesonid,第 10 行
字符串或二进制数据将被截断。
在我的第 10 行,我有以下代码
insert into invoice(sonvinid, tid, date, brandname, zone, location, area, venuename, venue, instructore, amount)
不知道这里出了什么问题?
【问题讨论】:
标签: sql-server stored-procedures select-insert