Atributos para projetos SQL Server e objetos de bancos de dados
Um atributo deve ser aplicado para cada projeto Microsoft SQL Server e para todos os arquivos objeto de banco de dados que um projeto contém:
Projeto / arquivo |
Atributo que deve ser aplicado |
---|---|
Project |
SqlAssemblyAttribute |
Agregado |
SqlUserDefinedAggregateAttribute |
Procedimento armazenado |
SqlProcedureAttribute |
Disparador |
SqlTriggerAttribute |
User-defined Function |
SqlFunctionAttribute |
User-defined Type |
SqlUserDefinedTypeAttribute |
SqlAssembly Attribute
O atributo deve ser aplicado a todos os módulos que são implantados em um banco de dados Microsoft SQL Server 2005.Este atributo não tem parâmetros.Ela é adicionada ao arquivo AssemblyInfo quando você cria um projeto do SQL Server.
Atributo SqlUserDefinedAggregate
Este atributo deve ser aplicado para agregar arquivos.Este atributo tem duas propriedades: Format andMaxByteSize.
Format
Obrigatório.O formato de armazenamento do agregado.Os formatos com suporte são:Native – Specifies that SQL Server uses an efficient native representation on disk.Esta opção de formato é o mais compacta e fornece o melhor desempenho.Os requisitos para esse formato são:
The StructLayout.LayoutKindSequential attribute must be applied to the aggregate.
Todos os campos do agregado precisam permitir transferências de bits, ou seja, eles devem ter uma representação comum tanto na memória gerenciada e não gerenciada e não exigem tratamento especial pelo interop marshaler.
The aggregate must not specify a value for MaxByteSize.
A agregação não deve ter quaisquer campos [NonSerialized].
Campos não devem ser marcados como um layout explícito.
UserDefined - Specifies that the user has full control over the binary format.Os requisitos para esse formato são:
The aggregate must implement IBinarySerialize.
The aggregate must specify a value for MaxByteSize.
MaxByteSize
O tamanho máximo de uma instância desta agregação, em bytes.Obrigatório somente se o Format é conjunto para UserDefined. Não deve ser especificado quando o Format é definido como Native.
Este exemplo especifica que o Format é a agregação Native.
<SqlUserDefinedAggregate(Format.Native)> _
Public Class SampleAggregate
'...
End Class
[SqlUserDefinedAggregate(Format.Native)]
public class SampleAggregate
{
//...
}
Atributo SqlProcedure
Este atributo deve ser aplicado a arquivos de procedimento armazenados.Este atributo tem o parâmetro a seguir:
- Name - Optional.Especifica o nome que é usado no SQL Server para referênciar o procedimento armazenado.
This example specifies that the stored procedure is referenced using the name sp_sqlName.
Partial Public Class StoredProcedures
<SqlProcedure(Name:="sp_sqlName")> _
Public Shared Sub SampleProcedure(ByVal s As SqlString)
'...
End Sub
End Class
public partial class StoredProcedures
{
[SqlProcedure(Name="sp_sqlName")]
public static void SampleProcedure(SqlString s)
{
//...
}
}
Atributo SqlTrigger
Este atributo deve ser aplicado para acionar arquivos.Este atributo tem os seguintes parâmetros:
Name - Optional.Especifica o nome que é usado no SQL Server para referênciar o disparador.
Target - Required.Especifica a tabela à qual o disparador é aplicado.
Event - Required.Especifica a ação que ativa o disparador.
This example specifies that the trigger is activated by updating existing data (UPDATE) in the table authors.
Partial Public Class Triggers
<SqlTrigger(Target:="authors", Event:="FOR UPDATE")> _
Public Shared Sub AuthorsUpdateTrigger()
'...
End Sub
End Class
public partial class Triggers
{
[SqlTrigger(Target="authors", Event="FOR UPDATE")]
public static void AuthorsUpdateTrigger()
{
//...
}
}
This example specifies that the trigger is referenced using the name trig_onpubinsert.The trigger is activated by adding new data (INSERT) to the table publishers.
Partial Public Class Triggers
<SqlTrigger(Name:="trig_onpubinsert", Target:="publishers", Event:="FOR INSERT")> _
Public Shared Sub PublishersInsertTrigger()
'...
End Sub
End Class
public partial class Triggers
{
[SqlTrigger(Name="trig_onpubinsert", Target="publishers", Event="FOR INSERT")]
public static void PublishersInsertTrigger()
{
//...
}
}
Atributo SqlFunction
Este atributo deve ser aplicado a arquivos de função definidos pelo usuário, que retornam um valor escalar ou uma tabela.Este atributo tem os seguintes parâmetros:
Name - Optional.Especifica o nome que é usado no SQL Server para fazer referência à função definida pelo usuário-.
Observação: Para funções que retornam um valor tabela, você deve especificar um valor para o TableDefinition propriedade, que contém a representação SQL da definição da tabela retornada.
This example specifies that the user-defined function is referenced using the name sp_scalarFunc.
Partial Public Class UserDefinedFunctions
<SqlFunction(Name:="sp_scalarFunc")> _
Public Shared Function SampleScalarFunction(ByVal s As SqlString) As SqlString
'...
Return ""
End Function
End Class
public partial class UserDefinedFunctions
{
[SqlFunction(Name="sp_scalarFunc")]
public static SqlString SampleScalarFunction(SqlString s)
{
//...
return "";
}
}
This example specifies that the user-defined function is referenced using the name sp_tableFunc.The TableDefinition property has the value letter nchar(1).
Partial Public Class UserDefinedFunctions
<SqlFunction(Name:="sp_tableFunc", TableDefinition:="letter nchar(1)")> _
Public Shared Function SampleTableFunction(ByVal s As SqlString) As IEnumerable
'...
Return New Char(2) {"a"c, "b"c, "c"c}
End Function
End Class
public partial class UserDefinedFunctions
{
[SqlFunction(Name="sp_tableFunc", TableDefinition="letter nchar(1)")]
public static IEnumerable SampleTableFunction(SqlString s)
{
//...
return new ArrayList(new char[3] {'a', 'b', 'c'});
}
}
Atributo SqlUserDefinedType
Este atributo deve ser aplicado a tipos de arquivos definidos pelo usuário.Este atributo tem quatro propriedades: Format, MaxByteSize, IsFixedLength, e IsByteOrdered.
Format
Obrigatório.O formato de armazenamento do tipo definido pelo usuário.Os formatos com suporte são:Native – Specifies that SQL Server uses an efficient native representation on disk.Esta é a opção mais compacta que normalmente resulta no melhor desempenho.Os requisitos para esse formato são:
The StructLayout.LayoutKindSequential attribute must be applied to the type.
Todos os campos do tipo definido pelo usuário precisam permitir transferências de bits, ou seja, eles devem ter uma representação comum tanto na memória gerenciada como na não gerenciada, e não exigem tratamento especial pelo interop marshaler.
The type must not specify a value for MaxByteSize.
O tipo não deve ter quaisquer campos [NonSerialized].
Campos não devem ser marcados como um layout explícito.
UserDefined - Specifies that the user has full control over the binary format.Os requisitos para esse formato são:
The type must implement IBinarySerialize.
The type must specify a value for MaxByteSize.
MaxByteSize
Obrigatório.O tamanho máximo de uma instância desse tipo, em bytes.IsFixedLength
Opcional.Especifica se todas as instâncias do tipo são do mesmo tamanho.O padrão é false.IsByteOrdered
Opcional.Especifica se a representação binário desse tipo são ordenados, ou seja, se ele pode ser usado para comparar instâncias desse tipo.O padrão é false.
This example specifies that the Format of the user-defined type is SerializedDataWithMetadataand theMaxByteSize is 8000 bytes.
<SqlUserDefinedType(Format.Native, MaxByteSize:=8000)> _
Public Class SampleType
'...
End Class
[SqlUserDefinedType(Format.Native, MaxByteSize=8000)]
public class SampleType
{
//...
}
Consulte também
Tarefas
Como: Criar um projeto de SQL servidor
Como: Criar e executar um CLR SQL servidor Stored procedimento
Como: Criar e executar um disparar CLR SQL servidor
Como: Criar e executar uma agregação de servidor SQL CLR
Como: Criar and Run a CLR SQL servidor função definida pelo usuário
Como: Criar and Run a CLR SQL servidor tipo definido pelo usuário
Demonstra Passo a passo: Criando um procedimento armazenado em código gerenciado
Como: Depurar um SQL CLR Procedimento Armazenado
Conceitos
Introduction to Integration CLR SQL Servidor
Vantagens de usar código gerenciado para criar objetos de bancos de dados
Modelos de Item para Projetos do SQL Server
Referência
Atributos para projetos SQL Server e objetos de bancos de dados
Outros recursos
Depuração de banco de dados SQL CLR
Date |
History |
Motivo |
---|---|---|
Julho de 2008 |
Atualizadas as informações sobre o MaxByteSize atributo para o SQLUserDefinedAggregate atributo. |
Correção de bug do conteúdo. |