【问题标题】:SQL if @name exists select ID else insert @name into tableSQL 如果@name 存在则选择ID 否则将@name 插入表中
【发布时间】:2014-12-22 20:04:20
【问题描述】:

表格如下:

CREATE TABLE names
(ID int,
 name varchar(10) unique)

我需要达到以下结果:

if @name not exists in names then insert into names (name) values (@name)
select id from names where name=@name

最好用用户定义的函数来实现。

【问题讨论】:

  • 很好。祝你好运。你有问题吗?
  • 那就这样做吧。这不是一个开发自动售货机...放入需求获取代码...
  • 我如何获得其中之一?他们是免费的吗
  • 我在问如何实现它

标签: sql sql-server


【解决方案1】:

你的问题基本上已经写好了答案:

IF (NOT EXISTS (SELECT * FROM names WHERE name = @name))
    INSERT INTO names (name) values (@name);

SELECT id FROM names WHERE name = @name;

唯一的问题是您尚未将表 names 设置为使用 IDENTITY 列。这意味着您还需要为 id 分配值。

【讨论】:

  • 感谢您的建议。是否可以使用返回所选 id 的用户定义函数来做到这一点?
  • @Martin Smith - 在自己写了一个模拟之后看到了你的评论。你是对的。您不能从函数插入。如果想封装INSERT 逻辑,OP 可能需要使用存储过程。
猜你喜欢
  • 2014-10-23
  • 1970-01-01
  • 1970-01-01
  • 2015-08-14
  • 2018-09-17
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
  • 2013-08-14
相关资源
最近更新 更多