Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.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-如果不存在_Sql_Sql Server_Exists - Fatal编程技术网

SQL-如果不存在

SQL-如果不存在,sql,sql-server,exists,Sql,Sql Server,Exists,我在DB中有一个表,其中存在一些记录 当我添加一条新记录时,我需要按“Name”列检查该记录是否存在于数据库中。如果这样的记录不存在-然后添加它,如果存在-然后更新。我试着这样做: USE [TestDB] GO DECLARE @daily nvarchar = 'DailySummaryEmailProcessor' IF NOT EXISTS ( SELECT * FROM [dbo].Crons

我在DB中有一个表,其中存在一些记录

当我添加一条新记录时,我需要按“Name”列检查该记录是否存在于数据库中。如果这样的记录不存在-然后添加它,如果存在-然后更新。我试着这样做:

USE [TestDB]
GO

DECLARE @daily nvarchar = 'DailySummaryEmailProcessor'


IF NOT EXISTS ( SELECT *
                    FROM   [dbo].Crons
                    WHERE   name = @daily) 
            BEGIN                    
                   INSERT INTO [dbo].Crons (CronJobID, Name, Description)
                                    VALUES()                         
            END

ELSE
             BEGIN 
                   UPDATE  [dbo].Crons
                   SET
                   WHERE
             END

问题是您从未声明变量@dialy的大小

试试这个,看看你得到了什么

DECLARE @daily nvarchar = 'DailySummaryEmailProcessor'
SELECT @daily
看起来你需要插入。。使现代化签出
MERGE
语句

编辑:


哦。。标签中有
MySQL
。我的答案具体是关于
SQL Server

问题是您从未声明变量@dialy的大小

试试这个,看看你得到了什么

DECLARE @daily nvarchar = 'DailySummaryEmailProcessor'
SELECT @daily
看起来你需要插入。。使现代化签出
MERGE
语句

编辑:


哦。。标签中有
MySQL
。我的答案具体是关于
SQL Server

合并应符合您的要求:


合并应符合您的要求:


你的问题是什么?保留您正在使用的实际数据库的标签(MySQL不是SQL Server)。这是正确的实现方法吗?您使用的是MySQL还是MS SQL Server?MS SQL Server..而您的问题是?保留您正在使用的实际数据库的标签(MySQL不是SQL Server)。这是正确的实现方法吗?您使用的是MySQL还是MS SQL Server?MS SQL Server..根据他给出的代码示例,他使用的是SQL Server.:-)根据他给出的代码示例,他正在使用SQL Server.:-)