Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用';如果存在';SQL语句内部两次_Sql Server_Sql Insert_Exists - Fatal编程技术网

Sql server 使用';如果存在';SQL语句内部两次

Sql server 使用';如果存在';SQL语句内部两次,sql-server,sql-insert,exists,Sql Server,Sql Insert,Exists,我正在尝试创建一个不存在的用户。听起来很简单,但我需要控制是否存在其他东西。所以我用了两次“如果存在”。这是我的密码: IF NOT EXISTS (SELECT userID FROM UserTable WHERE usernameID = (IF NOT EXISTS(SELECT usernameID FROM Usernam

我正在尝试创建一个不存在的用户。听起来很简单,但我需要控制是否存在其他东西。所以我用了两次“如果存在”。这是我的密码:

IF NOT EXISTS (SELECT userID 
               FROM UserTable 
               WHERE usernameID = (IF NOT EXISTS(SELECT usernameID 
                                                 FROM UsernameTable 
                                                 WHERE name = 'Martijn')
                                   BEGIN
                                       INSERT INTO  UsernameTable(name) 
                                       VALUES ('Martijn');
                                   END

                                   SELECT usernameID 
                                   FROM UsernameTable 
                                   WHERE name = 'Martijn';)
                   AND country = 'Netherlands')
BEGIN
    INSERT INTO  UserTable(usernameID, country) 
    VALUES (1, 'Netherlands');
END

我怎样才能解决这个问题?因为MySQL不喜欢检查我的
usernameID
IF存在。我需要一个程序吗?

我搜索了一些解决方案,但最好是使用
程序。
如果在
过程中存在多个
,则可以创建多个

创建新用户后,我还可以保存ID。

在SQL Server中,您应该可以执行以下操作:

IF NOT EXISTS (SELECT userID FROM UserTable WHERE name = 'Martijn')
BEGIN
    INSERT INTO  UsernameTable(name, country)
        VALUES ('Martijn', 'Netherlands');
END;

这是一次理解SQL代码的尝试。如果不存在“Martijn”,请在表中插入“Martijn”。

您需要两个命令—一个用于用户,另一个用于用户/国家组合。是否无法将所有内容都放在一个SQL语句中?请创建一个简单的架构。您使用的是哪个版本的MySQL?您可以使用upsert ish语法来完成所需的操作。我使用的是Microsoft SQL Server Management Studio 2017。最新版本。您在帖子中标记了MySQL,但您说您使用的是Microsoft SQL Server客户端。您使用的是MySQL还是Microsoft SQL Server?