我是在与SQL Server2008数据库的ASP.net应用程序工作。我知道在.net中,当我们需要进行任何长字符串连接时,我们应该使用StringBuilder,而不是使用"+“或"&”运算符。例如。
string myString = "SELECT column1,"
+ " column2,"
+ " column3,"
+ " column4,"
+ " column5,"
+ " column6,"
+ " FROM table1 t1"
+ " JOIN table2 t2"
+ " ON t1.column1 = t2.column1";我想知道这是否也适用于SQL Server,我们也应该避免这种类型的字符串连接?如果是,那么在SQL Server中连接长字符串的正确方法是什么。
发布于 2015-01-08 02:47:34
您可以使用内置的T-SQL Concat method,它等同于使用字符串构建器构建字符串。
根据文档,这是仅在SQL Server2012或2014中可用的,因此在您的情况下,您需要坚持使用+运算符。
发布于 2015-01-08 02:49:34
我想不出任何理由不使用+
DECLARE @myString VARCHAR(4000) = 'SELECT column1,'
+ ' column2,'
+ ' column3,'
+ ' column4,'
+ ' column5,'
+ ' column6,'
+ ' FROM table1 t1'
+ ' JOIN table2 t2'
+ ' ON t1.column1 = t2.column1';发布于 2015-01-08 02:48:57
在我有限的经验中,我发现几乎每次我认为我应该在SQL查询中连接数据时,我后来发现我应该按原样查询它,然后在C#中处理字符串操作。每次连接数据库中的两个结果时,都会增加遇到边缘情况的机会。
例如,考虑一个地址。我的数据库存储有以下列的地址:
起初,将Addr1和Addr2放在单独的行上似乎是合乎逻辑的,然后是City、StateCd、ZipCd-ZipSuf和CtryCd。实际上,如果Addr2或ZipSuf为null,这将导致在SQL中进行大量的条件格式化。
https://stackoverflow.com/questions/27826398
复制相似问题