正在分析SQL Server中的插入查询

本文关键字:插入 查询 Server SQL | 更新日期: 2023-09-27 18:24:40

我正在将数据从SQL服务器导出到SQL文件中。问题是,一些字符串列条目包含逗号,所以当我试图解析SQL文件时(基本上使用逗号分隔的字符串),我没有得到我想要的。有人能解决这个问题或者有更好的主意吗?

基本上,我需要将查询中的值分开:

示例:

价值观(123,"鲍勃喜欢吃浆果和豆子")

如果我用逗号作为分隔符来分隔,我会得到:

123
'bob likes to eat berries
and beans'

正在分析SQL Server中的插入查询

听起来您需要使用不同的分隔符进行导出。你用什么出口?如果是BCP命令行实用程序,则可以使用-t开关切换分隔符。例如,-t |表示管道分隔。

您是否尝试过导出为Tab分隔的变量?

您是否被限制使用逗号作为分隔符?您可以使用一个不同的字符或一系列您不希望在字符串中显示的字符。

或者,根据数据集的不同,您可以在临时表中对字符串进行"编码",并将逗号替换为以后可以识别的特殊字符。

您可以使用正则表达式。

var myMatches = Regex.Matches(lineInFile, "(?:[^',]+)|(?:'[^']+')");
foreach(var m in myMatches)
{
   /* write m.ToString() to StringBuilder or file */
}

希望能有所帮助。

如果必须使用当前格式,可以使用类似的正则表达式

(('d+), ('.*'))

regex不是最好的,但可以与您的示例一起使用。