T-SQL:在已声明的URL

时间:2018-10-11 05:47:04

标签: sql-server tsql variables ssms declare

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

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

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

OSM以JSON格式为您返回奥克兰的所有电影院。

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

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将其磷化为红色:

enter image description here

不确定如何解决此问题。

我遵循了多份指南,但是他们都说要使用' + @variable + ',但就我而言却无法正常工作。

为什么?

1 个答案:

答案 0 :(得分:1)

它只是编辑器的语法颜色。您可以将他配置为您的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) ;