Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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
用于JSON导入的MS SQL存储过程-检查输入是否存在_Sql_Sql Server_Stored Procedures - Fatal编程技术网

用于JSON导入的MS SQL存储过程-检查输入是否存在

用于JSON导入的MS SQL存储过程-检查输入是否存在,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我有以下存储过程 但是,如果“X-Forwarded-For”为空,我希望取而代之的是“remote_address” 我该怎么做 CREATE PROCEDURE dbo.Table(@payload NVARCHAR(MAX)) WITH ENCRYPTION AS SET NOCOUNT ON; IF (ISJSON(@payload) != 1) THROW 50001, 'JSON data expected', 1; INSERT INTO dbo.Tabl

我有以下存储过程

但是,如果“X-Forwarded-For”为空,我希望取而代之的是“remote_address”

我该怎么做

CREATE PROCEDURE dbo.Table(@payload NVARCHAR(MAX))
WITH ENCRYPTION
AS    
  SET NOCOUNT ON;  
  IF (ISJSON(@payload) != 1) THROW 50001, 'JSON data expected', 1;

  INSERT INTO dbo.Table(IP,Time)  
  SELECT JSONData.IP, getdate()
  FROM OPENJSON (@payload)  
           WITH (  
              IP       varchar(50)  N'$.request.headers."X-Forwarded-For"' 
           )  
  AS JSONData;
GO
远程地址的行如下所示:

              IP       varchar(50)  N'$.transaction.remote_address' 

噢!我喜欢这个样子:D我刚出去吃午饭,所以今天下午我要考试。谢谢您!
SELECT COALESCE(JSONData.XForwardedForIP, JSONData.RemoteAddressIP), getdate()
FROM OPENJSON (@payload)  
         WITH (  
            XForwardedForIP varchar(50)  N'$.request.headers."X-Forwarded-For"',
            RemoteAddressIP varchar(50)  N'$.transaction.remote_address' 
         )  
AS JSONData;