quinta-feira, 22 de março de 2012

Visual Studio 2011

Download Visual Studio 2011 Beta

http://www.microsoft.com/visualstudio/11/pt-br/downloads

quarta-feira, 21 de março de 2012

Windows Server 8 Beta


Windows Server 8 Beta
A próxima versão do Windows Server, o Windows Server 8, oferece a provedores de hospedagem e de negócios uma infraestrutura escalável, dinâmica, otimizada para a nuvem e preparada para vários locatários. Ela oferece conexão unificada segura e permite que os profissionais de TI atendam às necessidades de negócio com mais rapidez e eficiência.

» Baixe o Windows Server 8 Beta

Capacitação Microsoft - Grátis

• A MVA (Microsoft Virtual Academy) já conta com mais de nove roteiros disponíveis para capacitação grátis em português e muitas outras estão em produção.
Faça os cursos online, acumule pontos, faça autoavaliações e melhore ainda mais suas habilidades de desenvolvimento e TI. Não esqueça de se cadastrar como Brasil.

Acesse

SQL Server 2012

SQL Server 2012
E para os que estavam ansiosos como eu, trago uma boa notícia! A Microsoft anunciou publicamente no dia 06/03 que o SQL Server 2012 foi liberado para fabricação (RTM) e estará disponível a partir do dia 1º de abril. Caso você já queira testar e homologar a solução, é possível fazer download do SQL Server 2012 Evaluation Edition no link: http://bit.ly/yAoicN
Explore as novas funcionalidades que acompanham a nova versão! AlwaysOn para ambientes de missão crítica, ColumnStore Index para consultas até 10 vezes mais performáticas, PowerPivot e BI Semantic Model para um BI mais fácil, robusto e flexível, e PowerView para relatórios interativos e com excelente design em poucos cliques. E as novidades não param por aqui. Confira essas e outras novidades em nossos canais: http://bit.ly/yJLP3v
Fique de olho no nosso calendário de eventos. Estaremos passando em várias cidades explorando e apresentando cada uma das funcionalidades mencionadas. Não deixe de participar! Até a próxima! Grande abraço! ;)

segunda-feira, 19 de março de 2012

ARRAY - C#


Uma matriz é uma estrutura de dados que contém diversas variáveis do mesmo tipo. Uma matriz é declarada com um tipo:

type[] arrayName;

Os exemplos a seguir criar Simples-dimensionais, multidimensionais e  matrizes irregulares:

class TestArraysClass
{
    static void Main()
    {
        // Declare a single-dimensional array
        int[] array1 = new int[5];

        // Declare and set array element values
        int[] array2 = new int[] { 1, 3, 5, 7, 9 };

        // Alternative syntax
        int[] array3 = { 1, 2, 3, 4, 5, 6 };

        // Declare a two dimensional array
        int[,] multiDimensionalArray1 = new int[2, 3];

        // Declare and set array element values
        int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };

        // Declare a jagged array
        int[][] jaggedArray = new int[6][];

        // Set the values of the first array in the jagged array structure
        jaggedArray[0] = new int[4] { 1, 2, 3, 4 };
    }
}

Visão geral do array

Uma matriz possui as seguintes propriedades:

·         Uma matriz pode ser Unidimensionaismultidimensionais ou Jagged.
·         O valor padrão de elementos de matriz numérica estiver definida como zero e elementos de referência são definidos como null.
·    Uma matriz jagged é uma matriz de matrizes e, portanto, seus elementos são tipos de referência e são inicializados para null.
·         As matrizes são indexado de zero: uma matriz com n elementos é indexada a partir de 0 paran-1.
·         Elementos de matriz podem ser de qualquer tipo, incluindo o tipo de matriz.
·     Tipos de matriz são tipos de referência derivado do tipo base abstrato Array. Como esse tipo implementa IEnumerable e IEnumerable(Of T), você pode usar foreach a iteração em todos os conjuntos em C#.



Message Queuing to Windows Communication Foundation


Message Queuing to Windows Communication Foundation
Este exemplo demonstra como um aplicativo Message Queuing (MSMQ) pode enviar uma mensagem MSMQ para um serviço Windows Communication Foundation (WCF). O serviço é um aplicativo de console auto-hospedado para que você possa observar o serviço de recebimento de mensagens em fila.

O contrato de serviço é IOrderProcessor , que define um serviço de uma maneira, isto é adequado para uso com as filas. Uma mensagem de MSMQ não tem um cabeçalho de ação, de modo que não é possível para mapear diferentes mensagens MSMQ para contratos de operação automaticamente.Portanto, só pode haver um contrato de operação. Se você quiser definir mais de um contrato de operação para o serviço, o aplicativo deve fornecer informações a respeito de qual cabeçalho na mensagem MSMQ (por exemplo, o rótulo ou CorrelationId) pode ser usada para decidir qual o contrato de operação para despachar. Isto é demonstrado na Demux personalizado .

A mensagem MSMQ não contém informações a respeito de que os cabeçalhos são mapeados para os diferentes parâmetros do contrato de operação. O parâmetro é do tipo MSMQMessage (MSMQMessage <T> ), que contém a mensagem MSMQ subjacente. O tipo "T" no MSMQMessage (MSMQMessage <T> classe) representa os dados que é serializado no corpo da mensagem MSMQ.Nesta amostra, o PurchaseOrder tipo é serializado no corpo da mensagem MSMQ.

O código de exemplo a seguir mostra o contrato de serviço do serviço de processamento de pedidos.

// Define a service contract.
[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
[ServiceKnownType(typeof(PurchaseOrder))]
public interface IOrderProcessor
{
    [OperationContract(IsOneWay = true, Action = "*")]
    void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> msg);
}

O serviço é auto-hospedado. Ao usar MSMQ, a fila utilizado deve ser criado com antecedência. Isto pode ser feito manualmente ou através de código. Neste exemplo, o serviço verifica a existência da fila e cria-se necessário. O nome da fila é lido do arquivo de configuração.

public static void Main()
{
    // Get the MSMQ queue name from the application settings in 
    // configuration.
    string queueName = ConfigurationManager.AppSettings["queueName"];
    // Create the MSMQ queue if necessary.
    if (!MessageQueue.Exists(queueName))
        MessageQueue.Create(queueName, true);
    
}

O serviço cria e abre um ServiceHost para o OrderProcessorService , como mostrado no seguinte código de exemplo.

using (ServiceHost serviceHost = new ServiceHost(typeof(OrderProcessorService)))
{
    serviceHost.Open();
    Console.WriteLine("The service is ready.");
    Console.WriteLine("Press <ENTER> to terminate service.");
    Console.ReadLine();
    serviceHost.Close();
}

O nome da fila MSMQ é especificado em uma secção appSettings do ficheiro de configuração, como mostrado no exemplo de configuração seguinte.
<appSettings>
    <add key="orderQueueName" value=".\private$\Orders" />
</ AppSettings>

A aplicação cliente é uma aplicação que usa o MSMQ Enviar método para enviar uma mensagem durável e transacional para a fila, como mostrado no seguinte código de exemplo.

//Connect to the queue.
MessageQueue orderQueue = new MessageQueue(ConfigurationManager.AppSettings["orderQueueName"]);
 
// Create the purchase order.
PurchaseOrder po = new PurchaseOrder();
po.CustomerId = "somecustomer.com";
po.PONumber = Guid.NewGuid().ToString();
 
PurchaseOrderLineItem lineItem1 = new PurchaseOrderLineItem();
lineItem1.ProductId = "Blue Widget";
lineItem1.Quantity = 54;
lineItem1.UnitCost = 29.99F;
 
PurchaseOrderLineItem lineItem2 = new PurchaseOrderLineItem();
lineItem2.ProductId = "Red Widget";
lineItem2.Quantity = 890;
lineItem2.UnitCost = 45.89F;
 
po.orderLineItems = new PurchaseOrderLineItem[2];
po.orderLineItems[0] = lineItem1;
po.orderLineItems[1] = lineItem2;
 
// Submit the purchase order.
Message msg = new Message();
msg.Body = po;
//Create a transaction scope.
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
{
    
    orderQueue.Send(msg, MessageQueueTransactionType.Automatic);
    // Complete the transaction.
    scope.Complete();
   
}
Console.WriteLine("Placed the order:{0}", po);
Console.WriteLine("Press <ENTER> to terminate client.");
Console.ReadLine();

Quando você executar o exemplo, as atividades do cliente e do serviço são exibidos em tanto o serviço e cliente Windows do console. Você pode ver o serviço de receber mensagens do cliente. Pressione a tecla ENTER em cada janela de console para desligar o serviço eo cliente. Observe que, como filas está em uso, o cliente eo serviço não precisa ser instalado e funcionando ao mesmo tempo. Por exemplo, você poderia executar o cliente, desligá-lo, e então iniciar o serviço e ainda receber suas mensagens.

domingo, 18 de março de 2012

Trocar mensagens com Endpoints WCF e aplicativos de enfileiramento de mensagens


Exchange Messages with WCF Endpoints and Message Queuing Applications

Você pode integrar existentes Message Queuing (MSMQ) aplicações com o Windows Communication Foundation (WCF) aplicativos usando a integração MSMQ ligação para converter mensagens MSMQ para mensagens do WCF. Isto permite-lhe pôr em aplicações receptor de clientes MSMQ do WCF, bem como chamada em serviços WCF a partir de aplicações MSMQ remetente.
Nesta seção, vamos explicar como usar MsmqIntegrationBinding para a comunicação entre na fila (1) um cliente WCF e um serviço de aplicação MSMQ escrito usando System.Messaging e (2) um aplicativo cliente MSMQ e um serviço WCF.
Para um exemplo completo que demonstra como chamar um aplicativo receptor MSMQ de um cliente WCF, consulte o link Windows Communication Foundation para o enfileiramento de mensagens.
Para um exemplo completo que demonstra como chamar um serviço WCF de um cliente MSMQ, consulte o link enfileiramento de mensagens para o Windows Communication Foundation.
Para criar um serviço WCF que recebe mensagens de um cliente MSMQ
1. Definir uma interface que define o contrato de serviço para o serviço WCF que recebe as mensagens na fila de um aplicativo remetente MSMQ, como mostrado no seguinte exemplo de código.
[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
[ServiceKnownType(typeof(PurchaseOrder))]
public interface IOrderProcessor
{
    [OperationContract(IsOneWay = true, Action = "*")]
    void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> msg);
}

2. Implementar a interface e aplicar o ServiceBehaviorAttribute atributo para a classe, como mostrado no código exemplo a seguir.
public class OrderProcessorService : IOrderProcessor
{
    [OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
    public void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> ordermsg)
    {
        PurchaseOrder po = (PurchaseOrder)ordermsg.Body;
        Random statusIndexer = new Random();
        po.Status = (OrderStates)statusIndexer.Next(3);
        Console.WriteLine("Processing {0} ", po);
}
public static void Main()
{
    // Get base address from appsettings in configuration.
    Uri baseAddress = new Uri(ConfigurationManager.AppSettings["baseAddress"]);
 
    // Create a ServiceHost for the CalculatorService type and provide the base address.
    using (ServiceHost serviceHost = new ServiceHost(typeof(IOrderProcessor), baseAddress))
    {
    // Open the ServiceHostBase to create listeners and start listening for messages.
        serviceHost.Open();
 
    // The service can now be accessed.
        Console.WriteLine("The service is ready.");
        Console.WriteLine("The service is running in the following account: {0}", WindowsIdentity.GetCurrent().Name);
        Console.WriteLine("Press <ENTER> to terminate service.");
        Console.WriteLine();
        Console.ReadLine();
 
    // Close the ServiceHostBase to shutdown the service.
        serviceHost.Close();
    }
}
}
3. Criar um arquivo de configuração que especifica o MsmqIntegrationBinding.
<configuration>
  <appSettings>
    <!-- use appSetting to configure MSMQ queue name -->
    <add key="orderQueueName" value=".\private$\Orders" />
    <add key="baseAddress" value="http://localhost:8000/ServiceModelSamples/Service" />
  </appSettings>
  <system.serviceModel>
    <services>
      <service 
        name="Microsoft.ServiceModel.Samples.OrderProcessorService" >
        <endpoint address="msmq.formatname:DIRECT=OS:.\private$\Orders"
                                                                                                                                                  binding="msmqIntegrationBinding"
                  bindingConfiguration="OrderProcessorBinding" 
                  contract="Microsoft.ServiceModel.Samples.IOrderProcessor">
        </endpoint>
      </service>
    </services>
 
    <bindings>
      <msmqIntegrationBinding>
        <binding name="OrderProcessorBinding" >
          <security mode="None" />
        </binding>
      </msmqIntegrationBinding>
    </bindings>
 
  </system.serviceModel >
 
</configuration>

4. Instanciar um ServiceHost objeto que usa a ligação configurada.
// Create the purchase order.
PurchaseOrder po = new PurchaseOrder();
po.customerId = "somecustomer.com";
po.poNumber = Guid.NewGuid().ToString();
 
PurchaseOrderLineItem lineItem1 = new PurchaseOrderLineItem();
lineItem1.productId = "Blue Widget";
lineItem1.quantity = 54;
lineItem1.unitCost = 29.99F;
 
PurchaseOrderLineItem lineItem2 = new PurchaseOrderLineItem();
lineItem2.productId = "Red Widget";
lineItem2.quantity = 890;
lineItem2.unitCost = 45.89F;
 
po.orderLineItems = new PurchaseOrderLineItem[2];
po.orderLineItems[0] = lineItem1;
po.orderLineItems[1] = lineItem2;
         
OrderProcessorClient client = new OrderProcessorClient("OrderResponseEndpoint");
MsmqMessage<PurchaseOrder> ordermsg = new MsmqMessage<PurchaseOrder>(po);
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
{
    client.SubmitPurchaseOrder(ordermsg);
    scope.Complete();
}
 
Console.WriteLine("Order has been submitted:{0}", po);
 
//Closing the client gracefully closes the connection and cleans up resources.
client.Close();
 
Console.WriteLine();
Console.WriteLine("Press <ENTER> to terminate client.");
Console.ReadLine();

quinta-feira, 15 de março de 2012

Visão Geral - ADO.NET Entity Framework


O ADO.NET Entity Framework é um conjunto de tecnologias que suportam o desenvolvimento de aplicações orientadas a dados de software. O Entity Framework permite aos desenvolvedores trabalhar com dados em forma de domínio propriedades e objetos específicos, tais como clientes e endereços de clientes, sem ter de se preocupar com as tabelas de banco de dados subjacentes e colunas onde esses dados estão armazenados. Com o Entity Framework, os desenvolvedores podem trabalhar em um nível maior de abstração, quando eles lidam com dados, e pode criar e manter aplicações orientadas a dados com menos código do que nas aplicações tradicionais.
O ADO.NET Entity Framework foi introduzido pela primeira vez como parte do. NET Framework e Microsoft Visual liberação Studio. Começando com a versão do Entity Framework versão 4.1, Entity Framework não é of.NET parte, mas é construído. NET. Para obter a última versão do Entity Framework, o uso de pacote "Entity Framework" NuGet .
. Os principais componentes do NET Framework e do Visual Studio que suportam a tecnologia Entity Framework são: ObjectContext , EntityClient , MetadataWorkspace ,EntityDataSource , EDMX arquivo de dados ADO.NET Entity Tools Modelo que fazem parte do Visual Studio.
. Os principais componentes que fazem parte do Entity Framework e não fazem parte da NET são: DbContext , Código Primeiro , Migrações , ADO.NET DbContext Gerador de código modelo T4.
Visão global
Entity Framework é um mapeador objeto-relacional (ORM) que reduz a diferença de impedância entre o mundo orientado a objeto de desenvolvedores. NET Framework e do mundo dos bancos de dados relacionais. Ele permite aos desenvolvedores principalmente interagir com o modelo conceitual de um aplicativo, usando familiares técnicas orientadas a objeto. Em Entity Framework você pode trabalhar com dados na forma de domínio propriedades e objetos específicos, tais como clientes e endereços de clientes , sem ter que se preocupar com as tabelas de banco de dados subjacentes e colunas onde esses dados estão armazenados. Os desenvolvedores podem emitir operações de acesso a dados em relação ao modelo conceitual, e Entity Framework traduz as operações em ações de bancos de dados relacionais.
Há duas camadas principais de uma aplicação Entity Framework:

·         A camada de modelagem
·         A camada de objeto
A camada de modelagem contém três componentes:
·         Um modelo conceitual composto por tipos de domínios específicos de entidades e relacionamentos, com base em um Modelo de Dados Entidade (EDM)
·         Um esquema de banco de dados que define tabelas e relacionamentos
·         Um mapeamento entre o modelo conceitual eo esquema de banco de dados
Entity Framework usa o componente de mapeamento para transformar as operações contra a entidade objetos, tais como criar, ler, atualizar e excluir-em operações equivalentes no banco de dados.
A Entidade camada de objeto Framework contém digitados Common Language Runtime (CLR) objetos que refletem as entidades e relacionamentos definidos no modelo conceitual. Esses objetos podem ser consumidos por linguagens de programação. O formato exato dos tipos é controlado por opções que você fornecer para Entity Framework.
Mapeamento e Modelagem
Existem diferentes maneiras para criar a camada de mapeamento ea camada de objeto:
·         Você pode usar ADO.NET Entity Tools modelo de dados para gerar o modelo de um banco de dados existente. Isso gera um modelo padrão conceitual e mapeamento, que você pode personalizar usando o Entity Designer Modelo de Dados. Você também pode usar ferramentas para criar graficamente um modelo conceitual usando o Entity Designer modelo de dados, e gerar um banco de dados baseado em metadados construída pela ferramenta de que modelo. Para mais informações, consulteFerramentas de entidade de dados modelo .
·         Você pode usar o desenvolvimento de código Primeiro para definir o seu modelo conceitual no código. O Entity Framework infere do modelo conceitual com base nos tipos de objetos e configurações adicionais que você definir. Os metadados de mapeamento é gerado durante o tempo de execução com base em uma combinação de como você definiu os tipos de domínio e informações de configuração adicional que você fornecer no código. O modelo pode ser mapeado para um banco de dados existente ou você pode gerar um novo banco de dados do seu modelo. Para mais informações, consulte código de desenvolvimento do primeiro .
Trabalhando com objetos
Entidade camada de objeto Framework permite que você faça o seguinte:
·         Execute consultas em relação ao modelo conceitual.
·         Materializar dados retornados da fonte de dados como objetos.
·         Acompanhar as mudanças que foram feitas para os objetos.
·         Propagar objeto muda de volta para a fonte de dados.
·         Vincular objetos a controles.


terça-feira, 13 de março de 2012

Como fazer Insert no SQL Server


Insert (Transact-SQL)
Adiciona uma ou mais linhas a uma tabela ou exibição no SQL Server.

(T-SQL)
-- Standard INSERT syntax
[ WITH <common_table_expression> [ ,...n ] ]
INSERT
{
        [ TOP (expression) [ PERCENT ] ]
        [ INTO ]
        { <object> | rowset_function_limited
          [ WITH ( <Table_Hint_Limited> [ ...n ] ) ] }
    {
        [ (column_list) ]
        [ <OUTPUT Clause> ]
        { VALUES ( { DEFAULT | NULL | expression } [ ,...n ] ) [ ,...n ]
          | derived_table
          | execute_statement
          | <dml_table_source>
          | DEFAULT VALUES
        }
    }
}
[; ]

Argumentos
WITH <common_table_expression>
Especifica o conjunto de resultados nomeado temporário, também conhecido como expressão de tabela comum, definido dentro do escopo da instrução INSERT. O conjunto de resultados é derivado de uma instrução SELECT.
Também podem ser usadas expressões de tabela comuns com as instruções SELECT, DELETE, UPDATE, MERGE e CREATE VIEW. Para obter mais informações, consulte WITH common_table_expression (Transact-SQL).
TOP (expression) [ PERCENT ]
Especifica o número ou porcentagem de linhas aleatórias que serão inseridas. expression pode ser um número ou uma porcentagem de linhas. As linhas referenciadas na expressão TOP que são usadas com INSERT, UPDATE ou DELETE não são organizadas em nenhuma ordem.
São necessários parênteses delimitando expression em TOP nas instruções INSERT, UPDATE e DELETE. Para obter mais informações, consulte TOP (Transact-SQL).
INTO
É uma palavra-chave opcional que pode ser usada entre INSERT e a tabela de destino.
server_name
É o nome do servidor vinculado no qual a tabela ou exibição está localizada. server_name pode ser especificado como um nome de servidor vinculado ou usando-se a função OPENDATASOURCE.
Quando server_name é especificado como um servidor vinculado, database_name e schema_name são necessários. Quando server_name é especificado com OPENDATASOURCE, database_name eschema_name podem não se aplicar a todas as fontes de dados e podem estar sujeitos aos recursos do provedor OLE DB que acessa o objeto remoto. Para obter mais informações, consulte Consultas distribuídas.
database_name
É o nome do banco de dados.
schema_name
É o nome do esquema ao qual a tabela ou exibição pertence.
table_or view_name
É o nome da tabela ou exibição que irá receber os dados.
Uma variável table, dentro de seu escopo, pode ser usada como uma origem de tabela em uma instrução INSERT.
A exibição referida por table_or_view_name deve ser atualizável e fazer referência exata a uma tabela base na cláusula FROM da exibição. Por exemplo, um INSERT em uma exibição de várias tabelas deve usar um column_list que faça referência apenas a colunas de uma tabela base. Para obter mais informações sobre exibições atualizáveis, consulte CREATE VIEW (Transact-SQL).
rowset_function_limited
É a função OPENQUERY ou OPENROWSET. O uso destas funções está sujeito aos recursos do provedor OLE DB que acessa o objeto remoto. Para obter mais informações, consulte Consultas distribuídas.
WITH ( <table_hint_limited> [... n ] )
Especifica uma ou mais dicas de tabela permitidas para uma tabela de destino. A palavra-chave WITH e os parênteses são necessários.
READPAST, NOLOCK e READUNCOMMITTED não são permitidos. Para obter mais informações sobre dicas de tabela, consulte Dicas de tabela (Transact-SQL).
(column_list)
É uma lista de uma ou mais colunas nas quais inserir dados. column_list deve ser incluída entre parênteses e estar delimitada por vírgulas.
Se uma coluna não estiver na column_list, o Mecanismo de Banco de Dados deve ser capaz de fornecer um valor baseado na definição da coluna. Caso contrário, a linha não poderá ser carregada. O Mecanismo de Banco de Dados fornece um valor automaticamente para a coluna se a coluna:
·         Tiver uma propriedade IDENTITY. O próximo valor de identidade incremental for usado.
·         Tiver um padrão. O valor padrão da coluna será usado.
·         Tiver um tipo de dados timestamp. O valor do carimbo de data/hora atual será usado.
·         Permitir valor nulo. Um valor nulo será usado.
·         For uma coluna computada. O valor calculado será usado.
column_list e uma lista de valores devem ser usados quando valores explícitos são inseridos em uma coluna de identidades e a opção SET IDENTITY_INSERT deve estar definida como ON para a tabela.
Cláusula OUTPUT
Retorna linhas inseridas como parte da operação de inserção. Os resultados podem ser retornados ao aplicativo de processamento ou inseridos em uma tabela ou variável de tabela para processamento futuro.
cláusula OUTPUT não tem suporte em instruções DML que fazem referência a exibições particionadas locais, exibições particionadas distribuídas ou tabelas remotas, ou instruções INSERT que contêm umexecute_statement. A cláusula OUTPUT INTO não é suportada em instruções INSERT que contenham uma cláusula <dml_table_source>.
VALUES
Apresenta a(s) lista(s) de valores de dados a serem inseridos. Deve haver valores de dados para cada coluna em column_list, se especificada, ou na tabela. A lista de valores deve ser incluída entre parênteses.
Se os valores na lista não estiverem na mesma ordem que as colunas na tabela ou se não tiverem um valor para cada coluna da tabela, column_list deverá ser usado para especificar explicitamente a coluna que armazena cada valor de entrada.
É possível usar o construtor de linhas do Transact-SQL (também chamado construtor de valor de tabela) para especificar várias linhas em uma única instrução INSERT. O construtor de linhas consiste em uma única cláusula VALUES com várias listas de valores entre parênteses e separados por uma vírgula. Para obter mais informações, consulte Construtor de valor de tabela (Transact-SQL).
DEFAULT
Força o Mecanismo de Banco de Dados a carregar o valor padrão definido para uma coluna. Se não existir um padrão para a coluna e a coluna aceitar valores nulos, NULL será inserido. Para uma coluna definida com o tipo de dados timestamp, o próximo valor do carimbo de data/hora será inserido. DEFAULT não é válido para uma coluna de identidade.
expression
É uma constante, uma variável ou uma expressão. A expressão não pode conter uma instrução EXECUTE.
Ao fazer referência a tipos de dados de caracteres Unicode ncharnvarchar e ntext, 'expression' deve ter a letra maiúscula 'N' como prefixo. Se 'N' não for especificado, o SQL Server irá converter a cadeia de caracteres na página de código correspondente ao agrupamento padrão do banco de dados ou coluna. Qualquer caractere não localizado nessa página de código será perdido. Para obter mais informações, consulte Programação do lado do servidor com Unicode.
derived_table
É qualquer instrução SELECT válida que retorne linhas de dados a serem carregadas na tabela. A instrução SELECT não pode conter uma CTE (expressão de tabela comum).
execute_statement
É qualquer instrução EXECUTE que retorne dados com instruções SELECT ou READTEXT.
Se execute_statement for usado com INSERT, cada conjunto de resultados deverá ser compatível com as colunas da tabela ou da column_list.
execute_statement pode ser usado para executar procedimentos armazenados no mesmo servidor ou em um servidor remoto. O procedimento no servidor remoto é executado e os conjuntos de resultados são retornados ao servidor local e carregados na tabela no servidor local. Em uma transação distribuída, execute_statement não pode ser emitido em um servidor vinculado de auto-retorno quando a conexão tem vários conjuntos de resultados ativos (MARS) habilitados.
Se execute_statement retornar dados com a instrução READTEXT, cada instrução READTEXT poderá retornar um máximo de 1 MB (1024 KB) de dados. execute_statement também pode ser usado com procedimentos estendidos. execute_statement insere os dados retornados pelo thread principal do procedimento estendido. No entanto, saídas de threads diferentes do thread principal não são inseridas.
Você não pode especificar um parâmetro avaliado por tabela como o destino de uma instrução INSERT EXEC; porém, ele pode ser especificado como uma origem na cadeia de caracteres INSERT EXEC ou procedimento armazenado. Para obter mais informações, consulte Parâmetros com valor de tabela (Mecanismo de Banco de Dados).
<dml_table_source>
Especifica que as linhas inseridas na tabela de destino são as retornadas pela cláusula OUTPUT de uma instrução INSERT, UPDATE, DELETE ou MERGE, opcionalmente filtradas por uma cláusula WHERE. Se <dml_table_source> estiver especificado, o destino da instrução INSERT externa deverá atender às seguintes restrições:
·         Deve ser uma tabela base, não uma exibição.
·         Não pode ser uma tabela remota.
·         Não pode ter gatilhos definidos.
·         Não pode participar de relações de chave primária/chave estrangeira.
·         Ele não pode participar de replicação de mesclagem ou de assinaturas atualizáveis para replicação transacional.
O nível de compatibilidade do banco de dados deve ser definido como 100 ou superior. Para obter mais informações, consulte cláusula OUTPUT (Transact-SQL).
<select_list>
É uma lista separada por vírgulas que especifica quais colunas retornadas pela cláusula OUTPUT devem ser inseridas. As colunas de <select_list> devem ser compatíveis com as colunas nas quais os valores serão inseridos. <select_list> não pode fazer referência a funções de agregação ou a TEXTPTR.
<dml_statement_with_output_clause>
É uma instrução INSERT, UPDATE, DELETE ou MERGE válida que retorna linhas afetadas em uma cláusula OUTPUT. A instrução não pode conter uma cláusula WITH nem pode ter como destino tabelas remotas ou exibições particionadas. Se UPDATE ou DELETE for especificada, ela não poderá ser uma instrução UPDATE ou DELETE baseada em cursor. Linhas de origem não podem ser referenciadas como instruções DML aninhadas.
WHERE <search_condition>
É qualquer cláusula WHERE que contém uma <search_condition> válida que filtra as linhas retornadas por <dml_statement_with_output_clause>. Para obter mais informações, consulte Critério de pesquisa (Transact-SQL). Quando usada nesse contexto, <search_condition> não pode conter subconsultas, funções escalares definidas pelo usuário que executam acesso a dados, funções agregadas, TEXTPTR, nem predicados de pesquisa de texto completo.
DEFAULT VALUES
Força a nova linha a conter os valores padrão definidos para cada coluna.
BULK
Usado por ferramentas externas para carregar um fluxo de dados binários. Esta opção não é dirigida para uso com ferramentas como SQL Server Management Studio, SQLCMD, OSQL ou interfaces de programação de aplicativo de acesso a dados, como o SQL Server Native Client.
FIRE_TRIGGERS
Especifica que qualquer gatilho de inserção definido na tabela de destino seja executado durante a operação de carregamento de fluxo de dados binários. Para obter mais informações, consulte BULK INSERT (Transact-SQL).
CHECK_CONSTRAINTS
Especifica que todas as restrições na tabela ou exibição de destino devem ser verificadas durante a operação de carregamento de fluxo de dados binários. Para obter mais informações, consulte BULK INSERT (Transact-SQL).
KEEPNULLS
Especifica que as colunas vazias devem reter um valor nulo durante a operação de carregamento de fluxo de dados binários. Para obter mais informações, consulte Mantendo valores nulos ou usando valores padrão durante a importação em massa.
KILOBYTES_PER_BATCH = kilobytes_per_batch
Especifica o número aproximado de kilobytes (KB) de dados por lote como kilobytes_per_batch. Para obter mais informações, consulte BULK INSERT (Transact-SQL).
ROWS_PER_BATCH =rows_per_batch
Indica o número aproximado de linhas de dados no fluxo de dados binários. Para obter mais informações, consulte BULK INSERT (Transact-SQL).
Observação Um erro de sintaxe será gerado se uma lista de colunas não for fornecida.
Exemplo Sintaxe SQL Server
USE AdventureWorks2008R2;
GO
INSERT INTO Production.UnitMeasure
VALUES (N'FT', N'Feet', '20080414');
GO

USE AdventureWorks2008R2;
GO
INSERT INTO Production.UnitMeasure
VALUES (N'FT2', N'Square Feet ', '20080923'), (N'Y', N'Yards', '20080923'), (N'Y3', N'Cubic Yards', '20080923');
GO

USE AdventureWorks2008R2;
GO
INSERT INTO Production.UnitMeasure (Name, UnitMeasureCode,
    ModifiedDate)
VALUES (N'Square Yards', N'Y2', GETDATE());
GO

USE AdventureWorks2008R2;
GO
IF OBJECT_ID ('dbo.T1', 'U') IS NOT NULL
    DROP TABLE dbo.T1;
GO
CREATE TABLE dbo.T1
(
    column_1 AS 'Computed column ' + column_2,
    column_2 varchar(30)
        CONSTRAINT default_name DEFAULT ('my column default'),
    column_3 rowversion,
    column_4 varchar(40) NULL
);
GO
INSERT INTO dbo.T1 (column_4)
    VALUES ('Explicit value');
INSERT INTO dbo.T1 (column_2, column_4)
    VALUES ('Explicit value', 'Explicit value');
INSERT INTO dbo.T1 (column_2)
    VALUES ('Explicit value');
INSERT INTO T1 DEFAULT VALUES;
GO
SELECT column_1, column_2, column_3, column_4
FROM dbo.T1;
GO

USE AdventureWorks2008R2;
GO
IF OBJECT_ID ('dbo.T1', 'U') IS NOT NULL
    DROP TABLE dbo.T1;
GO
CREATE TABLE dbo.T1 ( column_1 int IDENTITY, column_2 VARCHAR(30));
GO
INSERT T1 VALUES ('Row #1');
INSERT T1 (column_2) VALUES ('Row #2');
GO
SET IDENTITY_INSERT T1 ON;
GO
INSERT INTO T1 (column_1,column_2)
    VALUES (-99, 'Explicit identity value');
GO
SELECT column_1, column_2
FROM T1;
GO

USE AdventureWorks2008R2;
GO
IF OBJECT_ID ('dbo.T1', 'U') IS NOT NULL
    DROP TABLE dbo.T1;
GO
CREATE TABLE dbo.T1
(
    column_1 int IDENTITY,
    column_2 uniqueidentifier,
);
GO
INSERT INTO dbo.T1 (column_2)
    VALUES (NEWID());
INSERT INTO T1 DEFAULT VALUES;
GO
SELECT column_1, column_2
FROM dbo.T1;
GO

Para obter mais exemplos de sintaxe SQL favor consultar o site abaixo.
Até a próxima onde vamos tratar o comando UPDATE