求高手指点sql插入语句
我有部门表:deid,dename,职工表:id,nuember(编号),name,deid,但添加新职工的时候是填编号,name,部门名字,怎么写sql的插入语句添加新...
我有部门表:deid,dename,职工表:id,nuember(编号),name,deid,但添加新职工的时候是填编号,name,部门名字,怎么写sql的插入语句添加新员工,我写insert into employee(number,name,deid)values(@number,@name,@deid)出错,该怎么改,,求高手指点,插入的时候要不要加id
展开
3个回答
展开全部
和ID的关系应该不大,你先看看是不是自增ID,如果是,就不应该加ID
你输入的是部门名字,字段是部门ID,那么应该先根据名字查找部门ID,再将部门ID一起写到职工表,这样就需要两条语句。
select @deid from 部门表 where dename=@部门名字
再
insert into employee(number,name,deid)values(@number,@name,@deid)
你输入的是部门名字,字段是部门ID,那么应该先根据名字查找部门ID,再将部门ID一起写到职工表,这样就需要两条语句。
select @deid from 部门表 where dename=@部门名字
再
insert into employee(number,name,deid)values(@number,@name,@deid)
追问
我是在sql数据源里写的sql语句,里面的选择、更新、插入是分开的,选择和更新没问题,但插入我用insert into employee(number,name,deid)values(@number,@name,@deid)我觉得没错,其实就一直出错,不知道为什么,不知道怎么改,求高手指点(我填写部门名字的时候是用droplist,就是显示选择的是部门名字,其实插入的是部门id),
追答
如果确认deid没错,那么理论上语句没错,这样说没法说明白。
给你两个建议,一个是,如果程序允许,获取到具体sql的报错信息,通过这个信息判断具体问题。
另一个是,在代码中显示或输出一下拼接好的insert语句,将拼接好的语句在sql管理器中执行试试,这样肯定有具体报错信息了,就比较容易分析错误了。
展开全部
什么数据库?
如果是sqlserver,并且id设置成自增长,那么就可以不加id;否则就需要加。
如果是oracle,
一般都用加ID,然后只用 序号: seq_xxx.nextval 表示ID的下一个取值
如果是sqlserver,并且id设置成自增长,那么就可以不加id;否则就需要加。
如果是oracle,
一般都用加ID,然后只用 序号: seq_xxx.nextval 表示ID的下一个取值
更多追问追答
追问
SQL的,id设置的是主键,关键是插入语句该怎么改,我的查询和更新语句没问题,但插入的时候只能显示一张表(两张表是关联的,更新跟查询的时候可以有两张表,插入的时候只能选择一张表),自己写的插入语句一直出错,不知道为什么,求指导并改正
追答
你说了半天,没有说到关键点上,
你的部门表中:deid、和 职工表中 id 都是 自增长吗 ?
如果是,比如
insert into department(dename) values(@dename);
然后获得 deid
select @deid = IDENT_CURRENT(‘department’)
最插入员工表:
insert into employee(number,name,deid)values(@number,@name,@deid)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
set @sql='insert into table_49 values('127.0.0.1','2013-11-07 09:45:06','2013-11-07 09:45:13', '男','大一','Internet资源,图书馆')'
这里会解析生set @sql='insert into table_49 values(',两个单引号已经算成一个字符串了,所以后面的127无法识别。
所以这里你要修改成sql=""。外面使用双引号试试
这里会解析生set @sql='insert into table_49 values(',两个单引号已经算成一个字符串了,所以后面的127无法识别。
所以这里你要修改成sql=""。外面使用双引号试试
追问
我要的是插入语句啊,而且插入语句是插入新员工,所以员工信息是不明确的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询