SQL Server的模板 - 我如何逃生不到字符?(SQL Server Templates -

2019-07-23 05:00发布

我喜欢使用SQL Server 2005米的模板来运行常用查询。 您可以在使用此语法您的模板参数:

<LastName, varchar, 'Bob'>

我有一个需要比小于或等于运算符的查询<=可惜的SQL Server 2005的模板解释,作为一个参数的开始。 我一直无法找到一种方法,使用<(小于字符)作为文字。

Answer 1:

当我指定模板参数的值,这个运行对我罚款:

select * from <xyz, varchar,YourTable> WHERE ID<=1000 AND ID>=20000

也许你不必每一个参数的“<”和“>”配对正确

编辑我现在看到的问题:

SELECT * FROM <xyz, varchar,YourTable> WHERE ID<=1000 AND ID>=20000 AND <xyz2,varchar,YourColumn> IS NOT NULL

结果是:

SELECT * FROM YourTable WHERE IDYourColumn IS NOT NULL

尝试使“<”字符为参数,如下所示:

SELECT * FROM <xyz, varchar,YourTable> WHERE ID<lessthan,char,<>=1000
AND ID>=20000 AND <<xyz2,varchar,YourColumn> IS NOT NULL

其结果是:

SELECT * FROM YourTable WHERE ID<=1000
AND ID>=20000 AND YourColumn IS NOT NULL

或分割线,换行似乎有所作为:

SELECT * FROM <xyz, varchar,YourTable> WHERE ID<=1000 AND ID>=20000 
AND <xyz2,varchar,YourColumn> IS NOT NULL

结果是:

SELECT * FROM YourTable WHERE ID<=1000 AND ID>=20000 
AND YourColumn IS NOT NULL


Answer 2:

随着模板

select top 10 * from syscolumns
where <xtype, varchar(128), xtype <= 60>

如果选择(菜单)查询>指定模板参数的值,以便更换默认值是“的xtype <= 60”,这是正确的,并且在替代,生成的查询的文本是

select top 10 * from syscolumns
where xtype <= 60

这是人们所期望的是什么。 换句话说,它不表现为是,“<”符号需要转义的情况。 然而,“>”会有更多的问题:

select top 10 * from syscolumns
where <xtype, varchar(128), xtype >= 60>

打开“指定值”对话框时,这将失败。 然而,在这种情况下,它是好的指定

select top 10 * from syscolumns
where <xtype, varchar(128), value>

并进入

xtype >= 60

在更换了“值”字段。 这将产生

select top 10 * from syscolumns
where xtype >= 60

这又是正如人们所期望。 因此,它似乎是更新换代的默认值可能不包含一个“>”。



文章来源: SQL Server Templates - How Do I Escape The Less Than Character?