XML 在 WHERE 中使用变量查询
XML Query with a variable in WHERE
我的代码运行良好。但是我想要一个变量在 运行 时间内改变它的值。我想要 C# 中的输出 xml 文件。
declare @MySearch nvarchar(50)
set @MySearch='بودان'
SELECT ID, Family
FROM Table_1
where freetext(Family, @MySearch, LANGUAGE 1025)
FOR XML RAW ('Employee'), ROOT ('Employees'), ELEMENTS XSINIL;
已编辑:
我 运行 此代码并收到此错误:
Null or empty full-text predicate.
我想要 C#
中的输出 xml
文件。
declare @MySearch nvarchar(50)
--set @MySearch=N'بودان'
SELECT ID, Family
FROM Table_1
where freetext(Family, @MySearch, LANGUAGE 1025)
FOR XML RAW ('Employee'), ROOT ('Employees'), ELEMENTS XSINIL;
“N”与众不同,您需要它两次...
试试这个:
DECLARE @v1 VARCHAR(10)='بودان';
DECLARE @v2 VARCHAR(10)=N'بودان';
DECLARE @nv1 NVARCHAR(10)='بودان';
DECLARE @nv2 NVARCHAR(10)=N'بودان';
SELECT @v1,@v2,@nv1,@nv2;
结果
????? ????? ????? بودان
只有最后一次尝试才能显示您所需要的...
原因:普通字符串SET @v='MyString'
未作为UNICODE
处理
将变量声明为 NVARCHAR
是不够的,也不足以存储像 N'SomeText'
.
这样的 unicode 文字
编辑:
经过长时间的评论讨论,解决问题的最后一句话是:
当然你必须连接到数据库才能执行此操作!
无论您想对数据库做什么,首先您需要一个打开的连接。
我的代码运行良好。但是我想要一个变量在 运行 时间内改变它的值。我想要 C# 中的输出 xml 文件。
declare @MySearch nvarchar(50)
set @MySearch='بودان'
SELECT ID, Family
FROM Table_1
where freetext(Family, @MySearch, LANGUAGE 1025)
FOR XML RAW ('Employee'), ROOT ('Employees'), ELEMENTS XSINIL;
已编辑:
我 运行 此代码并收到此错误:
Null or empty full-text predicate.
我想要 C#
中的输出 xml
文件。
declare @MySearch nvarchar(50)
--set @MySearch=N'بودان'
SELECT ID, Family
FROM Table_1
where freetext(Family, @MySearch, LANGUAGE 1025)
FOR XML RAW ('Employee'), ROOT ('Employees'), ELEMENTS XSINIL;
“N”与众不同,您需要它两次...
试试这个:
DECLARE @v1 VARCHAR(10)='بودان';
DECLARE @v2 VARCHAR(10)=N'بودان';
DECLARE @nv1 NVARCHAR(10)='بودان';
DECLARE @nv2 NVARCHAR(10)=N'بودان';
SELECT @v1,@v2,@nv1,@nv2;
结果
????? ????? ????? بودان
只有最后一次尝试才能显示您所需要的...
原因:普通字符串SET @v='MyString'
未作为UNICODE
将变量声明为 NVARCHAR
是不够的,也不足以存储像 N'SomeText'
.
编辑:
经过长时间的评论讨论,解决问题的最后一句话是:
当然你必须连接到数据库才能执行此操作!
无论您想对数据库做什么,首先您需要一个打开的连接。