如何在 T-SQL 2005 中转义正斜杠?
我有这个动态 t-sql:
declare @sql nvarchar(max)
set @sql =
N'
insert into #t
SELECT
row_number() over(order by getdate()) as RowNum,
d.value('''+@baseDateXpath+''', ''datetime'') as basedate,
pref.query(''.'') as XmlExtract
FROM
@content.nodes(''/*/*'') AS extract(pref)
CROSS APPLY
@content.nodes(''//*'') AS datey(d)
WHERE
pref.value(''.//*[1]'', ''nvarchar(50)'') IS NOT NULL'
exec sp_executesql @sql,
N'@content xml',
@anXmlContentStr
它不起作用,因为(我认为)正斜杠的转义被误解了。
我该如何编写这个字符串才能正确执行?
I've got this dynamic t-sql:
declare @sql nvarchar(max)
set @sql =
N'
insert into #t
SELECT
row_number() over(order by getdate()) as RowNum,
d.value('''+@baseDateXpath+''', ''datetime'') as basedate,
pref.query(''.'') as XmlExtract
FROM
@content.nodes(''/*/*'') AS extract(pref)
CROSS APPLY
@content.nodes(''//*'') AS datey(d)
WHERE
pref.value(''.//*[1]'', ''nvarchar(50)'') IS NOT NULL'
exec sp_executesql @sql,
N'@content xml',
@anXmlContentStr
And it doesn't work because (I think) the escaping of the forward slashes is being mis-interpreted.
How do I write this string so that it will execute properly?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
难道只是你有
@content.nodes(''//'') AS datey(d)
而不是
@content.nodes(''//'') AS date(d)
如果不是,您遇到的错误是什么?
Could it just be that you have
@content.nodes(''//'') AS datey(d)
instead of
@content.nodes(''//'') AS date(d)
If not what is the error that you are rec'ng?