用于JSON导入的MS SQL存储过程-检查输入是否存在
我有以下存储过程 但是,如果“X-Forwarded-For”为空,我希望取而代之的是“remote_address” 我该怎么做用于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
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;