--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。 declare @medid int slect @medid=medid from medicine where medname='黄连' 要是在一个存储过程里面,你上面那句应该放在哪里呢,我试了好几次,都会提示有错误 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON goALTER Procedure [dbo].[PreMed_insert] @PreId varchar(50), @SerNumber varchar(50), @MedId int, @MedNamer varchar(50), @Mquality float
AS beginInsert into dbo.PreMed (PreId, SerNumber, MedId, MedName, Mquality) VALUES (@PreId, @SerNumber, @MedId, @MedNamer, @Mquality )end
--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。 declare @medid int slect @medid=medid from medicine where medname='黄连' 要是在一个存储过程里面,你上面那句应该放在哪里呢,我试了好几次,都会提示有错误 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON goALTER Procedure [dbo].[PreMed_insert] @PreId varchar(50), @SerNumber varchar(50), @MedId int, @MedNamer varchar(50), @Mquality float
AS beginInsert into dbo.PreMed (PreId, SerNumber, MedId, MedName, Mquality) VALUES (@PreId, @SerNumber, @MedId, @MedNamer, @Mquality )end
as select @medid=medid from medicine where medname=@MedName
放到begin后面 medid不用传进来了,传名字就好 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON goALTER Procedure [dbo].[PreMed_insert] @PreId varchar(50), @SerNumber varchar(50), @MedNamer varchar(50), @Mquality float
AS begin --你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。 declare @medid int slect @medid=medid from medicine where medname='黄连'Insert into dbo.PreMed (PreId, SerNumber, MedId, MedName, Mquality) VALUES (@PreId, @SerNumber, @medId, @MedNamer, @Mquality )end
直接输id很麻烦的,不直观,药品名称如果不对的话,那就是数据输入的问题了,到时候再说,不知道直接插入该怎么写,每次插入式都能转换,在sql表里建个触发器应该可以吧插入数据的时候,写个子查询就可以了,比如:insert into PreMed(MedId,其他列) select (select MedId from Medicine where MedName='你输入的药品名称'),其他列的值
放到begin后面 medid不用传进来了,传名字就好 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON goALTER Procedure [dbo].[PreMed_insert] @PreId varchar(50), @SerNumber varchar(50), @MedNamer varchar(50), @Mquality float
AS begin --你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。 declare @medid int slect @medid=medid from medicine where medname='黄连'Insert into dbo.PreMed (PreId, SerNumber, MedId, MedName, Mquality) VALUES (@PreId, @SerNumber, @medId, @MedNamer, @Mquality )end正解,离自己想要的还差一些
放到begin后面 medid不用传进来了,传名字就好 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON goALTER Procedure [dbo].[PreMed_insert] @PreId varchar(50), @SerNumber varchar(50), @MedNamer varchar(50), @Mquality float
AS begin --你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。 declare @medid int slect @medid=medid from medicine where medname='黄连'Insert into dbo.PreMed (PreId, SerNumber, MedId, MedName, Mquality) VALUES (@PreId, @SerNumber, @medId, @MedNamer, @Mquality )end正解,离自己想要的还差一些你要的是这样吗:set ANSI_NULLS ON set QUOTED_IDENTIFIER ON goALTER Procedure [dbo].[PreMed_insert] @PreId varchar(50), @SerNumber varchar(50), @MedNamer varchar(50), @Mquality float
AS begin --你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。 declare @medid int slect @medid=Insert into dbo.PreMed (PreId, SerNumber, MedId, MedName, Mquality) VALUES (@PreId, @SerNumber, (select medid from medicine where medname='黄连'), @MedNamer, @Mquality )end
放到begin后面 medid不用传进来了,传名字就好 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON goALTER Procedure [dbo].[PreMed_insert] @PreId varchar(50), @SerNumber varchar(50), @MedNamer varchar(50), @Mquality float
AS begin --你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。 declare @medid int slect @medid=medid from medicine where medname='黄连'Insert into dbo.PreMed (PreId, SerNumber, MedId, MedName, Mquality) VALUES (@PreId, @SerNumber, @medId, @MedNamer, @Mquality )end正解,离自己想要的还差一些试试这个:set ANSI_NULLS ON set QUOTED_IDENTIFIER ON goALTER Procedure [dbo].[PreMed_insert] @PreId varchar(50), @SerNumber varchar(50), @MedNamer varchar(50), @Mquality float
AS begin --你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。 declare @medid int slect @medid=Insert into dbo.PreMed (PreId, SerNumber, MedId, MedName, Mquality) VALUES (@PreId, @SerNumber, (select medid from medicine where medname='黄连'), @MedNamer, @Mquality )end
insert into PreMed(MedId,其他列) select (select MedId from Medicine where MedName='你输入的药品名称'),其他列的值嗯,子查询不太了解,不过可以试试
放到begin后面 medid不用传进来了,传名字就好 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON goALTER Procedure [dbo].[PreMed_insert] @PreId varchar(50), @SerNumber varchar(50), @MedNamer varchar(50), @Mquality float
AS begin --你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。 declare @medid int slect @medid=medid from medicine where medname='黄连'Insert into dbo.PreMed (PreId, SerNumber, MedId, MedName, Mquality) VALUES (@PreId, @SerNumber, @medId, @MedNamer, @Mquality )end正解,离自己想要的还差一些试试这个:set ANSI_NULLS ON set QUOTED_IDENTIFIER ON goALTER Procedure [dbo].[PreMed_insert] @PreId varchar(50), @SerNumber varchar(50), @MedNamer varchar(50), @Mquality float
AS begin --你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。 declare @medid int slect @medid=Insert into dbo.PreMed (PreId, SerNumber, MedId, MedName, Mquality) VALUES (@PreId, @SerNumber, (select medid from medicine where medname='黄连'), @MedNamer, @Mquality )end谢谢小当家,上面那个其实已经可以插入了,我在vc程序里也调试好可以用了,我是想要个触发器形式的(我也不知道行不行),当在一个表中插入一个数据时,会自动补全其它列信息的
放到begin后面 medid不用传进来了,传名字就好 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON goALTER Procedure [dbo].[PreMed_insert] @PreId varchar(50), @SerNumber varchar(50), @MedNamer varchar(50), @Mquality float
AS begin --你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。 declare @medid int slect @medid=medid from medicine where medname='黄连'Insert into dbo.PreMed (PreId, SerNumber, MedId, MedName, Mquality) VALUES (@PreId, @SerNumber, @medId, @MedNamer, @Mquality )end正解,离自己想要的还差一些试试这个:set ANSI_NULLS ON set QUOTED_IDENTIFIER ON goALTER Procedure [dbo].[PreMed_insert] @PreId varchar(50), @SerNumber varchar(50), @MedNamer varchar(50), @Mquality float
AS begin --你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。 declare @medid int slect @medid=Insert into dbo.PreMed (PreId, SerNumber, MedId, MedName, Mquality) VALUES (@PreId, @SerNumber, (select medid from medicine where medname='黄连'), @MedNamer, @Mquality )end谢谢小当家,上面那个其实已经可以插入了,我在vc程序里也调试好可以用了,我是想要个触发器形式的(我也不知道行不行),当在一个表中插入一个数据时,会自动补全其它列信息的可以通过触发器来补全,通过update的方式,比如:create trigger dbo.trigger_PreMed_insert on dbo.PreMed for insert as--这里是自动补全了MedId列,你还可以补全其他的列 update PreMed set MedId = (select medid from Medicine where Medname =i.medname) from inserted i where i.PreId = PreMed.PreIdgo
可以通过触发器来补全,通过update的方式,比如:create trigger dbo.trigger_PreMed_insert on dbo.PreMed for insert as--这里是自动补全了MedId列,你还可以补全其他的列 update PreMed set MedId = (select medid from Medicine where Medname =i.medname) from inserted i where i.PreId = PreMed.PreIdgo 嗯,试了试,在sql里面挺好使的,就是一点不明白,那个i代表什么,在这里应该是PreMed表吧
嗯,试了试,在sql里面挺好使的,就是一点不明白,那个i代表什么,在这里应该是PreMed表吧这个inserted i 其实这里的i就是个别称,也就是inserted,这个是一个在触发器中能用的表,表示了要插入的记录。
也就是,比如你insert into 一条记录。那么这个insert语句,触发了 这个触发器,然后里面的inserted这个表里,就会有这条记录,然后你可以引用这条记录进行关联,查询等
你在vc里面弄个combobox啊,显示药名,值为id,然后直接传输id到数据库啊,有什么问题么?
--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。
declare @medid int
slect @medid=medid from medicine where medname='黄连'
你在vc里面弄个combobox啊,显示药名,值为id,然后直接传输id到数据库啊,有什么问题么?
我想利用SQL语句直接插入,不想再vc里面在查找对应信息再插入了
--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。
declare @medid int
slect @medid=medid from medicine where medname='黄连'
要是在一个存储过程里面,你上面那句应该放在哪里呢,我试了好几次,都会提示有错误
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER Procedure [dbo].[PreMed_insert]
@PreId varchar(50),
@SerNumber varchar(50),
@MedId int,
@MedNamer varchar(50),
@Mquality float
AS
beginInsert into dbo.PreMed
(PreId,
SerNumber,
MedId,
MedName,
Mquality)
VALUES
(@PreId,
@SerNumber,
@MedId,
@MedNamer,
@Mquality
)end
--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。
declare @medid int
slect @medid=medid from medicine where medname='黄连'
要是在一个存储过程里面,你上面那句应该放在哪里呢,我试了好几次,都会提示有错误
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER Procedure [dbo].[PreMed_insert]
@PreId varchar(50),
@SerNumber varchar(50),
@MedId int,
@MedNamer varchar(50),
@Mquality float
AS
beginInsert into dbo.PreMed
(PreId,
SerNumber,
MedId,
MedName,
Mquality)
VALUES
(@PreId,
@SerNumber,
@MedId,
@MedNamer,
@Mquality
)end
看你的存储过程,这些你都已参数的形式传进去了,那你还要拿干嘛。
看你的存储过程,这些你都已参数的形式传进去了,那你还要拿干嘛。
比葫芦画瓢画的,我参考书上的,自己在声明的时候加上了你给写的那些代码,不过不行,是不是应该在VALUES后面添加那些代码 @medid int,
@MedName varchar(50),
@Mquality float
as
select @medid=medid from medicine where medname=@MedName
@MedName varchar(50),
@Mquality float
as
select @medid=medid from medicine where medname=@MedName
放到begin后面 medid不用传进来了,传名字就好
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER Procedure [dbo].[PreMed_insert]
@PreId varchar(50),
@SerNumber varchar(50),
@MedNamer varchar(50),
@Mquality float
AS
begin
--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。
declare @medid int
slect @medid=medid from medicine where medname='黄连'Insert into dbo.PreMed
(PreId,
SerNumber,
MedId,
MedName,
Mquality)
VALUES
(@PreId,
@SerNumber,
@medId,
@MedNamer,
@Mquality
)end
select (select MedId from Medicine where MedName='你输入的药品名称'),其他列的值
放到begin后面 medid不用传进来了,传名字就好
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER Procedure [dbo].[PreMed_insert]
@PreId varchar(50),
@SerNumber varchar(50),
@MedNamer varchar(50),
@Mquality float
AS
begin
--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。
declare @medid int
slect @medid=medid from medicine where medname='黄连'Insert into dbo.PreMed
(PreId,
SerNumber,
MedId,
MedName,
Mquality)
VALUES
(@PreId,
@SerNumber,
@medId,
@MedNamer,
@Mquality
)end正解,离自己想要的还差一些
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER Procedure [dbo].[PreMed_insert]
@PreId varchar(50),
@SerNumber varchar(50),
@MedNamer varchar(50),
@Mquality float
AS
begin
--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。
declare @medid int
slect @medid=medid from medicine where medname='黄连'Insert into dbo.PreMed
(PreId,
SerNumber,
MedId,
MedName,
Mquality)
VALUES
(@PreId,
@SerNumber,
@medId,
@MedNamer,
@Mquality
)end正解,离自己想要的还差一些你要的是这样吗:set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER Procedure [dbo].[PreMed_insert]
@PreId varchar(50),
@SerNumber varchar(50),
@MedNamer varchar(50),
@Mquality float
AS
begin
--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。
declare @medid int
slect @medid=Insert into dbo.PreMed
(PreId,
SerNumber,
MedId,
MedName,
Mquality)
VALUES
(@PreId,
@SerNumber,
(select medid from medicine where medname='黄连'),
@MedNamer,
@Mquality
)end
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER Procedure [dbo].[PreMed_insert]
@PreId varchar(50),
@SerNumber varchar(50),
@MedNamer varchar(50),
@Mquality float
AS
begin
--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。
declare @medid int
slect @medid=medid from medicine where medname='黄连'Insert into dbo.PreMed
(PreId,
SerNumber,
MedId,
MedName,
Mquality)
VALUES
(@PreId,
@SerNumber,
@medId,
@MedNamer,
@Mquality
)end正解,离自己想要的还差一些试试这个:set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER Procedure [dbo].[PreMed_insert]
@PreId varchar(50),
@SerNumber varchar(50),
@MedNamer varchar(50),
@Mquality float
AS
begin
--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。
declare @medid int
slect @medid=Insert into dbo.PreMed
(PreId,
SerNumber,
MedId,
MedName,
Mquality)
VALUES
(@PreId,
@SerNumber,
(select medid from medicine where medname='黄连'),
@MedNamer,
@Mquality
)end
select (select MedId from Medicine where MedName='你输入的药品名称'),其他列的值嗯,子查询不太了解,不过可以试试
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER Procedure [dbo].[PreMed_insert]
@PreId varchar(50),
@SerNumber varchar(50),
@MedNamer varchar(50),
@Mquality float
AS
begin
--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。
declare @medid int
slect @medid=medid from medicine where medname='黄连'Insert into dbo.PreMed
(PreId,
SerNumber,
MedId,
MedName,
Mquality)
VALUES
(@PreId,
@SerNumber,
@medId,
@MedNamer,
@Mquality
)end正解,离自己想要的还差一些试试这个:set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER Procedure [dbo].[PreMed_insert]
@PreId varchar(50),
@SerNumber varchar(50),
@MedNamer varchar(50),
@Mquality float
AS
begin
--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。
declare @medid int
slect @medid=Insert into dbo.PreMed
(PreId,
SerNumber,
MedId,
MedName,
Mquality)
VALUES
(@PreId,
@SerNumber,
(select medid from medicine where medname='黄连'),
@MedNamer,
@Mquality )end谢谢小当家,上面那个其实已经可以插入了,我在vc程序里也调试好可以用了,我是想要个触发器形式的(我也不知道行不行),当在一个表中插入一个数据时,会自动补全其它列信息的
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER Procedure [dbo].[PreMed_insert]
@PreId varchar(50),
@SerNumber varchar(50),
@MedNamer varchar(50),
@Mquality float
AS
begin
--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。
declare @medid int
slect @medid=medid from medicine where medname='黄连'Insert into dbo.PreMed
(PreId,
SerNumber,
MedId,
MedName,
Mquality)
VALUES
(@PreId,
@SerNumber,
@medId,
@MedNamer,
@Mquality
)end正解,离自己想要的还差一些试试这个:set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER Procedure [dbo].[PreMed_insert]
@PreId varchar(50),
@SerNumber varchar(50),
@MedNamer varchar(50),
@Mquality float
AS
begin
--你根据你输入的药名可以找到药的ID,你把ID也插进去就可以了。
declare @medid int
slect @medid=Insert into dbo.PreMed
(PreId,
SerNumber,
MedId,
MedName,
Mquality)
VALUES
(@PreId,
@SerNumber,
(select medid from medicine where medname='黄连'),
@MedNamer,
@Mquality )end谢谢小当家,上面那个其实已经可以插入了,我在vc程序里也调试好可以用了,我是想要个触发器形式的(我也不知道行不行),当在一个表中插入一个数据时,会自动补全其它列信息的可以通过触发器来补全,通过update的方式,比如:create trigger dbo.trigger_PreMed_insert
on dbo.PreMed
for insert
as--这里是自动补全了MedId列,你还可以补全其他的列
update PreMed
set MedId = (select medid from Medicine where Medname =i.medname)
from inserted i
where i.PreId = PreMed.PreIdgo
on dbo.PreMed
for insert
as--这里是自动补全了MedId列,你还可以补全其他的列
update PreMed
set MedId = (select medid from Medicine where Medname =i.medname)
from inserted i
where i.PreId = PreMed.PreIdgo
嗯,试了试,在sql里面挺好使的,就是一点不明白,那个i代表什么,在这里应该是PreMed表吧