1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

SQL 问题求教

本帖由 不学无术2006-02-15 发布。版面名称:后端开发

  1. 不学无术

    不学无术 Ulysses 的元神

    注册:
    2005-08-31
    帖子:
    16,714
    赞:
    39
    一个表中仅有一个字段 Title

    我现在想增加一条记录,但是要保证记录不重复,可以写成在一条 SQL 语句中吗?

    要实现的功能是:

    有一组数据存放在一个数组中,要存入 Titles 表,每一项对应一条记录,怎么操作效率最高?

    我的想法是:

    循环

    代码:
    INSERT INTO Titles Title VALUES '" & strTitle & "' WHERE (SELECT COUNT(*) FROM Titles WHERE Title = '" & strTitle & "') = 0;
    结果出现如下错误信息:

    请指点!

    谢谢!

    :)
     
    #1 不学无术, 2006-02-15
    最后编辑: 2006-02-15
  2. 不学无术

    不学无术 Ulysses 的元神

    注册:
    2005-08-31
    帖子:
    16,714
    赞:
    39
    是不是这样使用 WHERE 不对呢?查了 SQL Server 手册,没看到这样的用法。

    :(
     
  3. srsman

    srsman Active Member

    注册:
    2005-11-08
    帖子:
    1,920
    赞:
    6
    就不告诉你!就不告诉你!就不告诉你。。。。。。。:p
     
  4. notnull

    notnull New Member

    注册:
    2005-09-27
    帖子:
    11,720
    赞:
    37
    偶是用判断:
    代码:
    if conn.execute("select top 1 Title from Titles where Title='"& strTitle  &"'").eof then
    	conn.execute("INSERT INTO Titles(Title) VALUES('" & strTitle & "')")
    end if
     
  5. notnull

    notnull New Member

    注册:
    2005-09-27
    帖子:
    11,720
    赞:
    37
    如果你想执行的稍微再快一点的话,吧这部分写成存储过程,每次调用让数据库去执行判断就可以了。
     
  6. 不学无术

    不学无术 Ulysses 的元神

    注册:
    2005-08-31
    帖子:
    16,714
    赞:
    39
    Access 的。

    :(
     
  7. notnull

    notnull New Member

    注册:
    2005-09-27
    帖子:
    11,720
    赞:
    37
    日~~
    我还以为是SQL server呢
     
  8. notnull

    notnull New Member

    注册:
    2005-09-27
    帖子:
    11,720
    赞:
    37
    ACCESS的话
    把里面那个top 1去掉就可以了吧