T-SQL:在声明的 URL 中插入变量

T-SQL: insert variable inside declared URL

我有一个我无法解决的简单问题。

如果您使用浏览器访问此URL:

http://overpass-api.de/api/interpreter?data=[out:json];area[name="Auckland"]->.a;(node(area.a)[amenity=cinema];);out;

OSM returns 为您介绍 JSON 奥克兰的所有电影院。

我想通过 T-SQL 动态查询,但首先我需要了解如何在 URL:[=16= 中插入城市名称变量]

DECLARE @place as NVARCHAR(30) SET @place = 'Auckland'

DECLARE @URL as VARCHAR(MAX) 
SET @URL = 'http://overpass-api.de/api/interpreter?data=[out:json];area[name="' + @place +'"]->.a;(node(area.a)[amenity=cinema];);out;';

此声明无效,SSMS 将其磷化为红色:

不确定如何解决这个问题。

我遵循了多个指南,但他们都说要使用 ' + @variable + ' 但在我的情况下不起作用。

为什么?

它只是编辑器的语法着色。你可以把他配置成你IDE.

注意你也可以这样做:

DECLARE @place as VARCHAR(30) = 'Auckland'

DECLARE @URL as VARCHAR(MAX)=FORMATMESSAGE('http://overpass-api.de/api/interpreter?data=[out:json];area[name="%s"]->.a;(node(area.a)[amenity=cinema];);out;',@place) ;