【问题标题】:SQL Server Templates - How Do I Escape The Less Than Character?SQL Server 模板 - 如何转义小于字符?
【发布时间】:2009-10-13 15:58:00
【问题描述】:

我喜欢使用 SQL Server 2005 模板来运行常用查询。您可以使用以下语法在模板中包含参数:

<LastName, varchar, 'Bob'>

我有一个查询需要小于或等于运算符 但不幸的是 SQL Server 2005 模板将其解释为参数的开头。我一直无法找到将 (小于字符)用作文字的方法。

【问题讨论】:

  • 你能发布整个查询吗?
  • 单引号不是转义字符吗?
  • +1 仅用于提及 SSMS 查询模板。很酷的功能,恕我直言被低估了。
  • +1,你可以把stackoverflow的代码片段+注释放在这些里面,帮助记住有用的东西

标签: sql-server sql-server-2005 templates ssms


【解决方案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

【讨论】:

    【解决方案2】:

    带模板

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

    如果您选择(菜单)查询>为模板参数指定值,替换的默认值为“xtype

    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
    

    这又如预期的那样。所以看起来替换的默认值可能不包含“>”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-05
      • 2015-09-14
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2010-11-11
      • 2012-09-27
      相关资源
      最近更新 更多