declare @mydoc xml
set @mydoc='
<值表>
<总值记录 id="123456">
<值记录>
<字段名称>文本框</字段名称>
<字段内容>测试1</字段内容>
</值记录>
</总值记录>
<总值记录 id="654321">
<值记录>
<字段名称>下拉框</字段名称>
<字段内容>测试2</字段内容>
</值记录>
</总值记录>
'查找其中一条记录,可以这样写select @mydoc.query('值表/总值记录[1]')
或者
select @mydoc.query('值表/总值记录[@id="123456"]')我想把[id="123456"]中的123456做成变量,或者把总值记录[1]中的1做成变量,就是declare @doc nvarchar(10)
set @doc="123456"
select @mydoc.query('值表/总值记录[@id=@doc]')declare @doc integer
set @doc=1
select @mydoc.query('值表/总值记录[@doc]')上面两个写法都会出错,请问应该怎么把变量写在里面呢?
set @mydoc='
<值表>
<总值记录 id="123456">
<值记录>
<字段名称>文本框</字段名称>
<字段内容>测试1</字段内容>
</值记录>
</总值记录>
<总值记录 id="654321">
<值记录>
<字段名称>下拉框</字段名称>
<字段内容>测试2</字段内容>
</值记录>
</总值记录>
'查找其中一条记录,可以这样写select @mydoc.query('值表/总值记录[1]')
或者
select @mydoc.query('值表/总值记录[@id="123456"]')我想把[id="123456"]中的123456做成变量,或者把总值记录[1]中的1做成变量,就是declare @doc nvarchar(10)
set @doc="123456"
select @mydoc.query('值表/总值记录[@id=@doc]')declare @doc integer
set @doc=1
select @mydoc.query('值表/总值记录[@doc]')上面两个写法都会出错,请问应该怎么把变量写在里面呢?
解决方案 »
- 求解一到面试试题
- 比如我有一个库叫a!我在企业管理器里面右键查看物理路径为c:/test!我想改为d:/test 怎么操作谢谢
- 这本书有没有电子版下载?<<中文版 SQL Server 2000 开发与管理应用实例>> 作者:邹建
- 求救,如何恢复被误删的表
- 谁知道怎么在SQL SERVER 2005中做IP连接限制
- 请教几个T-SQL的问题,内详,谢谢。
- 请问在那里能下个SQL啊!
- 存储过程自动建表后插入数据有问题,在线等,请高手指点
- SQL语法的一个问题,我认为比较难
- 存储过程有长度限制吗?知道的告知一下!
- 今天去面试SQL SERVER 2005 DBA的面试题
- 大家来帮我看看啊:视图查询的问题(关于如何连接)
set @doc= "123456 "
select @mydoc.query( '值表/总值记录[@id=sql:variable("@doc")] ')
set @doc= "123456 "
select @mydoc.query( '值表/总值记录[@id=sql:variable("@doc")]')--这个貌似不能用变量
declare @doc integer
set @doc=1
select @mydoc.query( '值表/总值记录[@doc] ')
declare @doc nvarchar(10)
set @doc= '123456'
select @mydoc.query( '值表/总值记录[@id=sql:variable("@doc")] ')
这其实跟--错
declare @tablename varchar(10)
set @tablename='myTable'
select * from @tablename --对
declare @myvalue varchar(10)
set @myvalue = 'aa'
select * from mytable where value=@myvalue
一样的道理。字串值,仅仅只是值,不能当对象来处理。@x.query('//item[sql:variable("@x")]') 这种想法是不能成立的。