几种插入数据的方法

--  几种插入数据的方法---------
1. 创建表后再插入
   insert into 插入表(列...) select 列... from 表名...
   
2. 插入时创建表
   SELECT 列... into 插入表 from 表名 
 
3. 将存储过程或者动态批处理的结果集插入到新表(把本机当作链接服务器来用)
  EXEC sp_serveroption <服务器名>,'data access',true;
  SELECT * INTO 插入表 FROM OPENQUERY(<服务器名>,'EXEC {存储过程名称 | 动态批处理}') AS O;
  
4. 将存储过程或者动态批处理的结果集插入到新表(直接语句)
  INSERT INTO 插入表 EXEC {存储过程 | 动态批处理语句}

5. 当源表有字段为 自增长时,而插入表不想 自增长时,则可以使用
  INSERT INTO 插入表 SELECT ID +0,字段... FROM 源表
  
6. 带返回值的 INSERT 语句  OUT 语句 
    CREATE TABLE dbo.CustomersDim
    (
      KeyCol int NOT NULL IDENTITY PRIMARY KEY,
      CustomerID NCHAR(50) NOT NULL,
      CompanyName nvarchar(40) NOT NULL 
    );

    DECLARE @NEWCusts TABLE
    (
      CustomerID NCHAR(5) NOT NULL PRIMARY KEY,
      KeyCol int NOT NULL unique
    );

    INSERT INTO CustomersDim(CustomerID,CompanyName)
    OUTPUT INSERTED.CustomerID,INSERTED.keyCol INTO @NEWCusts  -- 将生成的值 插入到的 临时表
    OUTPUT INSERTED.CustomerID,INSERTED.keyCol  -- 直接显示值
    SELECT customerid,CompanyName FROM northwind.dbo.Customers
    WHERE Country =N'UK' AND CustomerID='AROUT'

    SELECT * FROM @NEWCusts 

 

posted @ 2012-12-28 17:38  草根豆  阅读(1599)  评论(0编辑  收藏  举报