从一个表中查找出部分数据批量插入另外一个表中的语句出错,如何修改?请教!在线等待!

stium 2004-04-09 10:48:15
从一个表中查找出部分数据批量插入另外一个表中的语句出错。

INSERT INTO Info_Pic (pic_name,News_ID) VALUES (SELECT tPic_name,News_ID FROM Info_tmpPic where News_ID=@News_ID)

出错信息如下:

服务器: 消息 156,级别 15,状态 1,行 1
Incorrect syntax near the keyword 'SELECT'.
服务器: 消息 170,级别 15,状态 1,行 1
Line 1: Incorrect syntax near ')'.
...全文
179 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
stium 2004-04-09
  • 打赏
  • 举报
回复
已经解决了,是我的存储过程错了。在我的存储过程里用了以下语句,所以错误了,
--declare @sql1 varchar(200)
--set @sql1='INSERT INTO Info_Pic (pic_name,News_ID) SELECT tPic_name,News_ID FROM Info_tmpPic where News_ID='+cast(@News_ID as int)
--exec(@sql1)

应该用:
INSERT INTO Info_Pic (pic_name,News_ID) SELECT tPic_name,News_ID FROM Info_tmpPic where News_ID=@News_ID

再次谢谢lynx286
stium 2004-04-09
  • 打赏
  • 举报
回复
谢谢lynx286,修改后的语句放在asp文件里执行之后出现以下错误:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 'INSERT INTO Info_Pic (pic_name,News_ID) SELECT tPic_name,News_ID FROM Info_tmpPic where News_ID=' to a column of data type int.

已经确定@News_ID传值正确。
lynx286 2004-04-09
  • 打赏
  • 举报
回复
INSERT INTO Info_Pic (pic_name,News_ID) SELECT tPic_name,News_ID FROM Info_tmpPic where News_ID=@News_ID

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧