MSSQL 为 XML 打印一条消息
MSSQL print a message for XML
如果 table 存在,我会尝试检查我的数据错误,并从我的语句中获取打印输出 XML
为此,我尝试了以下代码:
IF (
EXISTS (
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'TABLE_NAME_I'
)
) BEGIN
PRINT 'Table allready exists in database'
FOR XML AUTO
END;
但我唯一得到的是:
Database operation failed: Incorrect syntax near the FOR keyword.
我也试过在PRINT 'Table allready exists in database'
前面设置FOR XML AUTO
,结果还是一样
我正在使用 JDBC 连接器来实现连接和输出。
我的项目是否可行,或者我是否必须将其与其他项目结合起来才能实现?
在此先感谢您的帮助。
更新
我现在也试过了
SET @string = '<MESSAGE>Table allready exists in database</MESSAGE>';
SET @xml = CONVERT(XML, @string);
SELECT @xml;
这是我得到的输出:
<Data>
<object_II>
<_1/>
</object_II>
<Data>
预期输出:
<Data>
<object_II>
<MESSAGE>Table allready exists in database</MESSAGE>
</object_II>
<Data>
您可以尝试使用 XQuery 和 FLWOR 表达式来编写所需的 XML。
SQL
DECLARE @message VARCHAR(100) = 'Table allready exists in database';
SELECT CAST(N'' AS XML).query('
<Data>
<object_II>
<MESSAGE>{sql:variable("@message")}</MESSAGE>
</object_II>
</Data>
');
或完全动态XML组成:
SELECT CAST(N'' AS XML).query('
element Data {
element object_II {
element MESSAGE {
text {sql:variable("@message")}
}
}
}
');
您将需要 SELECT,而不是印刷品:
SELECT 'Table already exists' as Message
FOR XML PATH('object_II'), ROOT ('Data');
如果 table 存在,我会尝试检查我的数据错误,并从我的语句中获取打印输出 XML
为此,我尝试了以下代码:
IF (
EXISTS (
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'TABLE_NAME_I'
)
) BEGIN
PRINT 'Table allready exists in database'
FOR XML AUTO
END;
但我唯一得到的是:
Database operation failed: Incorrect syntax near the FOR keyword.
我也试过在PRINT 'Table allready exists in database'
前面设置FOR XML AUTO
,结果还是一样
我正在使用 JDBC 连接器来实现连接和输出。
我的项目是否可行,或者我是否必须将其与其他项目结合起来才能实现?
在此先感谢您的帮助。
更新
我现在也试过了
SET @string = '<MESSAGE>Table allready exists in database</MESSAGE>';
SET @xml = CONVERT(XML, @string);
SELECT @xml;
这是我得到的输出:
<Data>
<object_II>
<_1/>
</object_II>
<Data>
预期输出:
<Data>
<object_II>
<MESSAGE>Table allready exists in database</MESSAGE>
</object_II>
<Data>
您可以尝试使用 XQuery 和 FLWOR 表达式来编写所需的 XML。
SQL
DECLARE @message VARCHAR(100) = 'Table allready exists in database';
SELECT CAST(N'' AS XML).query('
<Data>
<object_II>
<MESSAGE>{sql:variable("@message")}</MESSAGE>
</object_II>
</Data>
');
或完全动态XML组成:
SELECT CAST(N'' AS XML).query('
element Data {
element object_II {
element MESSAGE {
text {sql:variable("@message")}
}
}
}
');
您将需要 SELECT,而不是印刷品:
SELECT 'Table already exists' as Message
FOR XML PATH('object_II'), ROOT ('Data');