Tsql 在参数中使用CRLF调用带有exec语句的存储过程

Tsql 在参数中使用CRLF调用带有exec语句的存储过程,tsql,Tsql,我想用一个参数调用一个存储的proc,该参数包含一个包含CRLF的字符串 我实际上是从MSAccess直通查询调用SP。我构建exec语句,它在查询中将其传递给SQL 有什么想法吗 马尔科姆 编辑:该参数是SP中使用的电子邮件的正文 在“Lester employee:”之后是一个新行 wit_data_driven_subscription_2parameters 'Invoice', _ 'malcolm-smith@bigpond.com', _ 'payroll@lest

我想用一个参数调用一个存储的proc,该参数包含一个包含CRLF的字符串

我实际上是从MSAccess直通查询调用SP。我构建exec语句,它在查询中将其传递给SQL

有什么想法吗

马尔科姆

编辑:该参数是SP中使用的电子邮件的正文

在“Lester employee:”之后是一个新行

wit_data_driven_subscription_2parameters 'Invoice', _
    'malcolm-smith@bigpond.com', _
    'payroll@lester.com.au', _
    "Invoice Reprint As Requested", _
    "Attached is the invoice reprint       you requested for Lester employee:

Jeff Rogers", 'CapturedInvoice', '120744'

在您的
exec yourSP
语句中,有如下内容:

exec yourStoredProcedure@yourParam=replace(@yourCRLF')


我不知道您的字符串中的CRLF是什么样子(
\r\n
可能???),但是您可以用实际的CRLF字符/字符串替换
@yourCRLF
变量。

exec yourSP
语句中,有如下内容:

exec yourStoredProcedure@yourParam=replace(@yourCRLF')


我不知道您的字符串中的CRLF是什么样子(
\r\n
可能???),但您可以用实际的CRLF字符/字符串替换
@yourCRLF
变量。

TSQL接受字符串文本中的换行字符。。。换句话说,这是有效的:

EXEC storedProcedure 'My parameter
with a line break'
这取决于如何在MSAccess中生成此字符串。。。从vba(ms访问)。。您可以按如下方式构建查询:

Dim query as String
query = "EXEC storedProcedure 'My parameter" + vbCrLf + "with a line break'"

关于访问,我记得不多,但是如果您可以使用参数而不是字符串文本来传递值,那么就可以避免这个问题,并且可以避免很多其他问题,例如SQL注入

TSQL接受字符串文本中的换行符。。。换句话说,这是有效的:

EXEC storedProcedure 'My parameter
with a line break'
这取决于如何在MSAccess中生成此字符串。。。从vba(ms访问)。。您可以按如下方式构建查询:

Dim query as String
query = "EXEC storedProcedure 'My parameter" + vbCrLf + "with a line break'"

关于访问,我记得不多,但是如果您可以使用参数而不是字符串文本来传递值,那么您就可以避免这个问题,并且可以避免很多其他问题,例如SQL注入问题,我认为这可能是电子邮件问题,而不是SQL问题。我以前在HTML电子邮件中遇到过这个问题。将您的CrLf替换为HTML中断标记

我认为这可能是电子邮件问题,而不是SQL问题。我以前在HTML电子邮件中遇到过这个问题。用HTML中断标记替换您的CrLf

我不想删除换行符。这是一封电子邮件的正文。我不想删除这条新线。这是一封邮件的正文,并没有理由在你们的帖子上签名;这样做是多余的(每个帖子上都有你的用户名),重复这样做可能会导致暂停。我建议不要继续这种做法。没有理由在你的帖子上签名;这样做是多余的(每个帖子上都有你的用户名),重复这样做可能会导致暂停。我建议不要继续这种做法。