在varchar变量SQL Server 2008中存储单引号

在varchar变量SQL Server 2008中存储单引号,sql,sql-server,tsql,sql-server-2008,Sql,Sql Server,Tsql,Sql Server 2008,我想知道是否有一种方法可以在SQLServer2008中存储单引号。我正在构建几个报告,所有这些报告都是完全相同的,只是它们在我选择的代码上有所不同。例如,一份报告使用代码“abc”、“def”、“ghi”,另一份报告使用代码“jkl”、“mno”、“pqr”。我在考虑减少必须生成的存储过程的数量,我可以在报表上生成一个参数来选择要运行的报表类型。基于此,我将使用正确的代码。所以我打算把这些代码存储在一个varchar变量中。以下是我希望的功能: DECLARE @codes1 varchar,

我想知道是否有一种方法可以在SQLServer2008中存储单引号。我正在构建几个报告,所有这些报告都是完全相同的,只是它们在我选择的代码上有所不同。例如,一份报告使用代码“abc”、“def”、“ghi”,另一份报告使用代码“jkl”、“mno”、“pqr”。我在考虑减少必须生成的存储过程的数量,我可以在报表上生成一个参数来选择要运行的报表类型。基于此,我将使用正确的代码。所以我打算把这些代码存储在一个varchar变量中。以下是我希望的功能:

DECLARE @codes1 varchar, @codes2 varchar
SET @codes1 = ''abc', 'def', 'ghi''
SET @codes2 = ''jkl', 'mno', 'pqr''

然后,我将根据用户选择的参数使用适当的varchar变量。唯一的问题是设置变量,因为字符串中有单引号(该字符串将在SQL“in”语句中使用,这就是单引号存在的原因)。

类似于此。是的,Oded是正确的。正确的术语是“逃逸”。您可以通过将单个引号对折来对其进行转义


尽量避免硬编码值。创建一个表来保存这些值以及对它们进行分组的方法

Table CodeGroups
GroupNumber | Codes
       1    | abc
       1    | def
       1    | ghi
       2    | kkl
       2    | mno
       2    | pqr
这样,用户只需选择GroupNumber=1


将CodeGroups表链接到带有代码字符串的表。要添加另一个代码,只需在此表中输入一个条目并给它一个组号。

只需将其加倍,即可避免单个qoute问题

值Varchar2(10):=“abc”---你会得到一个错误


值Varchare(10):=“abc”---将解决您的问题。

Aka,通过将单个
'
加倍来转义它。
'
。变量声明中还需要一个长度,以避免截断为1个字符。谢谢!这正是我需要的!另外,感谢@Martin的补充评论!我也需要这个!提到的OP使用SQL Server 2008-您的解决方案是否打算与SQL Server 2008一起使用?此外,您应该在上面对您的解决方案进行解释。
                            int varId = "1";
                            String varItem = "Google's root";

                            String strSQL = "INSERT INTO table("
                                            + "id,"
                                            + "item"
                                            +")" 
                                            + "VALUES('" + varId 
                                            + "', '" + varItem
                                            + "')";
                            int varId = "1";
                            String varItem = "Google's root";

                            String strSQL = "INSERT INTO table("
                                            + "id,"
                                            + "item"
                                            +")" 
                                            + "VALUES('" + varId 
                                            + "', '" + varItem
                                            + "')";