在此上下文中不允许使用子查询。只允许使用标量表达式。Insert 查询结果-解决方法

本文介绍如何正确使用SQL子查询进行数据插入操作,通过示例展示如何避免错误并给出正确的语法。同时,提供了一种自动增加客户ID的方法。

在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;
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值