gpt4 book ai didi

SQL Server 传递变量而不是硬编码根元素名称

转载 作者:行者123 更新时间:2023-12-02 23:38:37 25 4
gpt4 key购买 nike

在 SQL Server 2008 中,我有一个查询

DECLARE @root AS varchar(20);
SET @root = 'Root';

DECLARE @element AS varchar(20);
SET @element = 'Element';

SELECT
*
FROM
SomeTable
FOR XML PATH (@element), ROOT(@root);

我想要的是传递变量,而不是对重复元素和根的名称进行硬编码。

当我执行查询时,它抛出此错误:

Msg 102, Level 15, State 1, Line 11
Incorrect syntax near '@element'.

可能吗?

谢谢

最佳答案

尝试动态 SQL -

DECLARE 
@Root VARCHAR(20)
, @Element VARCHAR(20)
, @SQL NVARCHAR(500)

SELECT
@Root = 'Root'
, @Element = 'Element'
, @SQL = N'
SELECT *
FROM Labour.Absence a
FOR XML PATH (''' + @Element + '''), ROOT(''' + @Root + ''')'

PRINT @SQL

EXEC sp_executesql @SQL

关于SQL Server 传递变量而不是硬编码根元素名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15923484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com