Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Pode especificar Métodos de Tipo de Dados xml contra uma variável ou coluna de tipo de dados xml . Por exemplo, o Método Query() (Tipo de Dado xml) executa o XQuery especificado contra uma instância XML. Quando constrói XML desta forma, pode querer trazer um valor de uma coluna não do tipo XML ou de uma variável Transact-SQL. Este processo é referido como ligação de dados relacionais dentro do XML.
Para vincular os dados relacionais não XML dentro do XML, o Motor de Base de Dados SQL Server fornece as seguintes pseudo-funções:
Função sql:column() (XQuery) Permite-lhe usar os valores de uma coluna relacional na sua expressão XQuery ou XML DML.
Função sql:variable() (XQuery). Permite-te usar o valor de uma variável SQL na tua expressão XQuery ou XML DML.
Pode usar estas funções com métodos de tipos de dados XML sempre que quiser expor um valor relacional dentro de XML.
Não pode usar estas funções para referenciar dados em colunas ou variáveis dos tipos xml, CLR definidos pelo utilizador, data-hora, smalldatetime, texto, ntext, sql_variant e tipos de imagem .
Além disso, esta ligação é para fins de apenas leitura. Ou seja, não pode escrever dados em colunas que usem estas funções. Por exemplo, sql:variable("@x")="alguma expressão" não é permitida.
Exemplo: Consulta entre domínios usando sql:variable()
Este exemplo mostra como sql:variable() pode permitir que uma aplicação parametrize uma consulta. O ISBN é transmitido usando uma variável @isbnSQL . Ao substituir a constante por sql:variable(), a consulta pode ser usada para procurar qualquer ISBN e não apenas aquele cujo ISBN é 0-7356-1588-2.
DECLARE @isbn VARCHAR(20)
SET @isbn = '0-7356-1588-2'
SELECT xCol
FROM T
WHERE xCol.exist ('/book/@ISBN[. = sql:variable("@isbn")]') = 1
SQL:Column() pode ser usado de forma semelhante e oferece benefícios adicionais. Os índices sobre a coluna podem ser usados para eficiência, conforme decidido pelo otimizador de consultas baseado em custos. Além disso, a coluna calculada pode armazenar uma propriedade promovida.