日期:2014-05-19  浏览次数:20461 次

????????高手帮忙,这个SQL为什么影响两条记录啊
insert   into   d   select   0, 'b ', 'c ', '2007-3-24 '   from   table1

------解决方案--------------------
SQL Server 2005 联机丛书
使用 INSERT 和 SELECT 子查询插入行

INSERT 语句中的 SELECT 子查询可用于将一个或多个表或视图中的值添加到另一个表中。使用 SELECT 子查询还可以同时插入多行。

在以下示例中,INSERT 语句将 AdventureWorks 的 Sales.SalesReason 表中 SalesReason 为 Marketing 的所有行中的一些数据插入到一个单独的表中。

复制代码
USE AdventureWorks;
GO
CREATE TABLE MySalesReason (
SalesReasonID int NOT NULL,
Name nvarchar(50),
ModifiedDate datetime);
GO
INSERT INTO MySalesReason
SELECT SalesReasonID, Name, ModifiedDate
FROM AdventureWorks.Sales.SalesReason
WHERE ReasonType = N 'Marketing ';
GO
SELECT SalesReasonID, Name, ModifiedDate
FROM MySalesReason;
GO

子查询的选择列表必须与 INSERT 语句的列列表匹配。如果没有指定列列表,选择列表必须与正在其中执行插入操作的表或视图的列匹配。

INSERT...SELECT 语句的另一个作用是从 SQL Server 2005 外部的源插入数据。INSERT 语句中的 SELECT 可用于下列情况:

使用由四部分组成的名称引用链接服务器上的远程表。有关详细信息,请参阅使用链接服务器名称标识数据源。

使用 OPENROWSET 引用远程表。有关详细信息,请参阅使用临时名称标识数据源。

使用在远程服务器上执行的查询结果集。有关详细信息,请参阅将传递查询用作表。
------解决方案--------------------
http://msdn2.microsoft.com/zh-cn/library/ms189872.aspx
msdn一搜索就有
------解决方案--------------------
table1 表里面有2条记录吗?