在insert语句中需要插入查询出来的值。 Insert into a (a1,a2,a3) values (1,select num from b where id=1,3) 这样写就出现了“在此上下文中不允许使用子查询。只允许使用标量表达式。”这个错误
可以这样: insert into a (a1,a2,a3) select 1,num,3 from b where id=1 即可解决问题.
INSERT INTO SMS_Customer(vc_AutoID, vc_ID, vc_Name, vc_Remark)
SELECT 'd16197b6-6179-4be9-9baa-16c27ede5f4a',MAX(vc_ID)+1,'2','3' FROM SMS_Customer
/// 自动添加客户,编号自动增加
/// </summary>
/// <param name="dateReport"></param>
/// <returns></returns>
public static bool InsertDataToSMS_CustomerIDADD(Customer customer)
{
//添加客户信息
string strSQLInsert_Customer = "Insert into SMS_Customer(" +
"vc_AutoID," + //uid列
"vc_ID," +
"vc_Name," + //客户名称
"vc_Remark" +
")" ;
string strSQL = strSQLInsert_Customer +
" select '" +
customer.Vc_AutoID + "'," +
"MAX(vc_ID) + 1,'" +
customer.Vc_Name + "','" +
customer.Vc_Remark + "'" +
" from SMS_Customer";
if (SQLHelper.ExecuteSQL(strSQL) > 0)
{
return true;
}
else
{
return false;
}
}
本文介绍如何正确使用SQL子查询进行数据插入操作,通过示例展示如何避免错误并给出正确的语法。同时,提供了一种自动增加客户ID的方法。
1万+

被折叠的 条评论
为什么被折叠?



