sql server把一个表中查询出来的数据插入到另外一个表中

qq_34001659 2016-10-21 02:07:17


string sql = "insert into kqz_Card
(cardtime,cardtypeid,devid,devclass,imgid,imgstatus,isvalidate,modifyuser,modifytype,modifytime,faceidno,employeeid)"
[+ " values (@cardtime,@cardtypeid,@devid,@devclass,@imgid,@imgstatus,@isvalidate,@modifyuser,@modifytype,@modifytime,@faceidno,@(select employeeid from kqz_employee where kqz_employee.employeecode=:employeecode))"
+ "select @cardid=@@IDENTITY;";


从kqz_employee表中,通过employeecode字段查询出 employeeid;

然后再把employeeid插入到kqz_Card表中,出现了

[Err] 42000 - [SQL Server]必须声明标量变量 "@select"。
42000 - [SQL Server]必须声明标量变量 "@card

想问一下大神,这么写对不对,如果不对的话该怎么改呢
...全文
505 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2016-10-21
  • 打赏
  • 举报
回复
用我提供例子,在数据创建一个表,可直接调试,这里RowID为标识列,如果还不会,那爱莫能助了,你只能自己去看本入门书 (#C 操作SQL SERVER方面),按书多动手 e.g.

CREATE TABLE [dbo].[Tab4](
	[RowID] [INT] IDENTITY(1,1) NOT NULL,
	[ID] [INT] NULL,
	[Name] [NVARCHAR](50) NULL,
 CONSTRAINT [PK_Tab4] PRIMARY KEY CLUSTERED 
(
	[RowID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

中国风 2016-10-21
  • 打赏
  • 举报
回复
字符串加引号,特殊字符加N'
qq_34001659 2016-10-21
  • 打赏
  • 举报
回复
引用 6 楼 roy_88 的回复:
这样拼凑T-SQL
SqlCommand thisComm = thisConn.CreateCommand();
            string s = "©";
            thisComm.CommandText = @"INSERT INTO dbo.Tab4(ID, Name)VALUES(2,'" + s + "') select @@identity as ID";
            object thisRows = thisComm.ExecuteScalar();
            Console.WriteLine("RowID={0}", thisRows);
引用 6 楼 roy_88 的回复:
这样拼凑T-SQL
SqlCommand thisComm = thisConn.CreateCommand();
            string s = "©";
            thisComm.CommandText = @"INSERT INTO dbo.Tab4(ID, Name)VALUES(2,'" + s + "') select @@identity as ID";
            object thisRows = thisComm.ExecuteScalar();
            Console.WriteLine("RowID={0}", thisRows);
我这样试了一下,会出现这样的问题; 操作将数据类型 varchar 转换为 bigint 时出错; 然后我百度了一下, [quote=引用 6 楼 roy_88 的回复:] 这样拼凑T-SQL
SqlCommand thisComm = thisConn.CreateCommand();
            string s = "©";
            thisComm.CommandText = @"INSERT INTO dbo.Tab4(ID, Name)VALUES(2,'" + s + "') select @@identity as ID";
            object thisRows = thisComm.ExecuteScalar();
            Console.WriteLine("RowID={0}", thisRows);
我试了一下,会出现这样的问题,
引用 6 楼 roy_88 的回复:
这样拼凑T-SQL
SqlCommand thisComm = thisConn.CreateCommand();
            string s = "©";
            thisComm.CommandText = @"INSERT INTO dbo.Tab4(ID, Name)VALUES(2,'" + s + "') select @@identity as ID";
            object thisRows = thisComm.ExecuteScalar();
            Console.WriteLine("RowID={0}", thisRows);
我试了一下,会出现这样的问题,无法将数据类型nvarchar转换成bigint类型,为什么啊,我在网上看了用这种拼接也会出现这种问题
中国风 2016-10-21
  • 打赏
  • 举报
回复
这样拼凑T-SQL
SqlCommand thisComm = thisConn.CreateCommand();
            string s = "©";
            thisComm.CommandText = @"INSERT INTO dbo.Tab4(ID, Name)VALUES(2,'" + s + "') select @@identity as ID";
            object thisRows = thisComm.ExecuteScalar();
            Console.WriteLine("RowID={0}", thisRows);
qq_34001659 2016-10-21
  • 打赏
  • 举报
回复
引用 4 楼 roy_88 的回复:
直接用T-SQL时,把传参拼起来,字符串时加引号+值,不是直接加变量
能写一下吗?新手第一次用sqlserver,会给帖子加分的
中国风 2016-10-21
  • 打赏
  • 举报
回复
直接用T-SQL时,把传参拼起来,字符串时加引号+值,不是直接加变量
中国风 2016-10-21
  • 打赏
  • 举报
回复
没传入参数,明白? 参照传参方法 http://blog.csdn.net/roy_88/article/details/51318650
qq_34001659 2016-10-21
  • 打赏
  • 举报
回复
引用 1 楼 roy_88 的回复:
你没有传参数
select employeeid from kqz_employee where kqz_employee.employeecode=:employeecode employeeid 是通过这取出来的,是有参数的
中国风 2016-10-21
  • 打赏
  • 举报
回复
你没有传参数
代码下载链接: https://pan.quark.cn/s/feb6394ba113 放射性核素衰变查询软件“decay”是一款为核物理学领域设计的专用工具,其功能在于提供全面的放射性核素衰变信息,涵盖了衰变链、分支比等核心数据。该软件特别适合科研人员、工程师以及关注核能或放射性物质的用户群体。在深入探讨这款软件之前,有必要先掌握放射性核素的基础知识。放射性核素定义为不稳定的原子核,由于质子与中子数量失衡,会自发触发核反应,释放能量及/或产生新粒子,此现象即为核衰变。常见的核衰变形式包含α衰变、β衰变(涵盖β+衰变与β-衰变)、γ衰变和电子俘获等。每一种衰变类型都关联着特定的能量释放和新生成的核素。“decay”软件的主要作用是进行衰变链的查询。衰变链描述的是一个放射性核素通过一连串连续的衰变步骤,最终转变为非放射性核素的现象。比如,铀-238会经由多次α和β衰变,最终转化为铅-206。该软件能够呈现这些衰变链的详尽资料,助力用户追踪并解析这一过程。分支比反映了衰变过程中各个可能途径的概率,即一个放射性核素在发生衰变时选择特定路径的可能性。分支比对于解析衰变过程中的能量分布和产物生成具有决定性意义,特别是在核能开发、环境检测和医疗领域中不可或缺。这款软件的运行环境设定在Windows XP系统,这表明它可能依赖于较早期的API和库,而这些在现代操作系统上可能存在兼容性问题。对于那些仍在使用或研究老旧系统的人员而言,“decay”是一份极具价值的参考资料。放射性核素的应用遍及多个领域,包括医学上的放射性同位素疗法、地质学中的年代测定、能源产业中的核反应堆构建以及环境科学里的污染物追踪等。“decay”软件所提供的数据能够协助专业人士精确计算和预估放射性物质的特性...
内容概要:本文档提供了Windows环境下Nginx的详细配置指南,适用于企业内网部署场景。配置文件以Django + Waitress应用架构为基础,全面涵盖反向代理、HTTPS加密、静态文件托管、安全防护等功能。文档对每一项配置均进行了通俗易懂的解释,包括工作进程设置、日志管理、连接处理、SSL证书配置、HTTP/2支持以及多种安全加固措施,如恶意请求拦截(SQL注入、XSS)、敏感文件访问限制、IP白名单机制和关键请求头转发,确保Web服务的安全性与稳定性。; 适合人群:具备基本Web服务器概念,正在Windows平台部署Python Web应用(尤其是Django)的开发人员或运维人员,尤其适合缺乏Nginx实战经验的初级至中级技术人员。; 使用场景及目标:①搭建安全可靠的反向代理服务器,将Nginx作为Django应用的前端网关;②实现HTTPS访问、静态资源分离与安全策略强化;③防范常见Web攻击,保护敏感配置文件和接口不被非法访问;④解决因请求头缺失导致的CSRF、登录失效等问题。; 阅读建议:建议结合实际项目逐步配置,并重点关注proxy_set_header各项参数的作用及其与Django的协同设置,务必在测试环境中验证所有安全规则和代理功能后再上线。

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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