Sql server T-SQL语句(如果存在)选择并插入
我怎样才能做到这一点…真的需要建议吗?我想获取满足条件的id,然后在查询中使用它Sql server T-SQL语句(如果存在)选择并插入,sql-server,tsql,Sql Server,Tsql,我怎样才能做到这一点…真的需要建议吗?我想获取满足条件的id,然后在查询中使用它 IF EXISTS (Select sn_id as snid FROM device.sn WHERE dname_id = 62 and sn_value = '123415') BEGIN SELECT MAX(id) AS maxid FROM device.list INSERT INTO parts (sn_id,device_id) VALUES (snid, ma
IF EXISTS (Select sn_id as snid FROM device.sn WHERE dname_id = 62 and sn_value = '123415')
BEGIN
SELECT MAX(id) AS maxid FROM device.list
INSERT INTO parts (sn_id,device_id) VALUES (snid, maxid)
END
ELSE
BEGIN
PRINT 'id does not exist'
return
END
您可以使用变量存储两个查询的结果,然后在
INSERT
语句中使用这些值
如果您使用的是Microsoft SQL Server,那么以下操作可能会起作用(但可能存在表面语法错误,因为它尚未经过测试)。注意,我假设列的类型是int
DECLARE @snid int
SET @snid = NULL
Select @snid = sn_id FROM device.sn WHERE dname_id = 62 and sn_value = '123415'
IF @snid IS NULL
BEGIN
PRINT 'id does not exist'
END
ELSE
BEGIN
DECLARE @maxid int
SELECT @maxid = MAX(id) AS maxid FROM device.list
INSERT INTO parts (sn_id,device_id) VALUES (@snid, @maxid)
END
在SQLServer中。此脚本首先插入记录,然后检查插入行的计数
INSERT INTO parts (sn_id, device_id)
SELECT sn_id, (SELECT MAX(id) FROM device.list)
FROM device.sn
WHERE dname_id = 62 and sn_value = '123415'
IF @@ROWCOUNT = 0 PRINT 'id does not exist'
您正在使用哪个数据库服务器?我的sql?ms sql server?你是sql之神,丹尼尔。谢谢。op可能不知道插入..选择模式。解释可能对他有帮助。
INSERT INTO parts (sn_id, device_id)
SELECT sn_id, (SELECT MAX(id) FROM device.list)
FROM device.sn
WHERE dname_id = 62 and sn_value = '123415'
IF @@ROWCOUNT = 0 PRINT 'id does not exist'