Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se:SQL Server
A tabela a seguir lista os tipos de dados do SQL Server, seus equivalentes no CLR (Common Language Runtime) para SQL Server no namespace System.Data.SqlTypes e seus equivalentes CLR nativos no .NET Framework.
| Tipo de dados do SQL Server | Tipo (em System.Data.SqlTypes ou Microsoft.SqlServer.Types) |
Tipo de dados CLR (.NET Framework) |
|---|---|---|
| bigint | SqlInt64 |
Int64, Nullable<Int64> |
| binary |
SqlBytes, SqlBinary |
Byte[] |
| bit | SqlBoolean |
Boolean, Nullable<Boolean> |
| char | Nenhum | Nenhum |
| cursor | Nenhum | Nenhum |
| date | SqlDateTime |
DateTime, Nullable<DateTime> |
| datetime | SqlDateTime |
DateTime, Nullable<DateTime> |
| datetime2 | Nenhum |
DateTime, Nullable<DateTime> |
| datetimeoffset | None |
DateTimeOffset, Nullable<DateTimeOffset> |
| decimal | SqlDecimal |
Decimal, Nullable<Decimal> |
| float | SqlDouble |
Double, Nullable<Double> |
| geografia |
SqlGeography
1 |
Nenhum |
| geometria |
SqlGeometry
1 |
Nenhum |
| hierarchyid |
SqlHierarchyId
1 |
Nenhum |
| imagem | Nenhum | Nenhum |
| int | SqlInt32 |
Int32, Nullable<Int32> |
| money | SqlMoney |
Decimal, Nullable<Decimal> |
| nchar |
SqlChars, SqlString |
String, Char[] |
| ntext | Nenhum | Nenhum |
| numeric | SqlDecimal |
Decimal, Nullable<Decimal> |
| nvarchar |
SqlChars, SqlStringSQLChars é uma melhor correspondência para transferência e acesso de dados, e SQLString é uma melhor correspondência para executar operações de String. |
String, Char[] |
| nvarchar(1), nchar(1) |
SqlChars, SqlString |
Char, String, Char[], Nullable<char> |
| real |
SqlSingle (no entanto, o intervalo de SqlSingle é maior que real) |
Single, Nullable<Single> |
| rowversion | Nenhum | Byte[] |
| smallint | SqlInt16 |
Int16, Nullable<Int16> |
| smallmoney | SqlMoney |
Decimal, Nullable<Decimal> |
| sql_variant | Nenhum | Object |
| table | Nenhum | Nenhum |
| text | Nenhum | Nenhum |
| time | Nenhum |
TimeSpan, Nullable<TimeSpan> |
| timestamp | Nenhum | Nenhum |
| tinyint | SqlByte |
Byte, Nullable<Byte> |
| uniqueidentifier | SqlGuid |
Guid, Nullable<Guid> |
| Tipo definido pelo usuário (UDT) | Nenhum | A mesma classe que é associada ao tipo definido pelo usuário no mesmo assembly ou em um assembly dependente. |
| varbinary |
SqlBytes, SqlBinary |
Byte[] |
| varbinary(1), binary(1) |
SqlBytes, SqlBinary |
byte, Byte[], Nullable<byte> |
| varchar | Nenhum | Nenhum |
| xml | SqlXml |
Nenhum |
1 Definido em Microsoft.SqlServer.Types.dll, que é instalado com o SQL Server e pode ser baixado do sql server feature pack.
Conversão automática de tipo de dados com parâmetros de saída
Um método CLR pode retornar informações para o código de chamada ou programa marcando um parâmetro de entrada com o modificador de out (C#) ou <Out()> ByRef (Visual Basic .NET). Se o parâmetro de entrada for um tipo de dados CLR no namespace System.Data.SqlTypes e o programa de chamada especificar seu tipo de dados equivalente do SQL Server como o parâmetro de entrada, uma conversão de tipo ocorrerá automaticamente quando o método CLR retornar o tipo de dados.
Por exemplo, o procedimento armazenado CLR a seguir tem um parâmetro de entrada de SqlInt32 tipo de dados CLR marcado com out (C#) ou <Out()> ByRef (Visual Basic):
[Microsoft.SqlServer.Server.SqlProcedure]
public static void PriceSum(out SqlInt32 value)
{ ... }
Depois que o assembly é criado e criado no banco de dados, o procedimento armazenado é criado no SQL Server com o seguinte Transact-SQL, que especifica um tipo de dados do SQL Server de int como um parâmetro OUTPUT:
CREATE PROCEDURE PriceSum
(@sum INT OUTPUT)
AS EXTERNAL NAME TestStoredProc.StoredProcedures.PriceSum;
Quando o procedimento armazenado CLR é chamado, o tipo de dados SqlInt32 é convertido automaticamente em um tipo de dados int e retornado ao programa de chamada.
No entanto, nem todos os tipos de dados CLR podem ser convertidos automaticamente em seus tipos de dados equivalentes do SQL Server por meio de um parâmetro out. A tabela a seguir lista estas exceções.
| Tipo de dados CLR (SQL Server) | Tipo de dados do SQL Server |
|---|---|
Decimal |
smallmoney |
SqlMoney |
smallmoney |
Decimal |
money |
DateTime |
smalldatetime |
SQLDateTime |
smalldatetime |
Conteúdo relacionado
- tipos de dados do SQL Server no do .NET Framework