从一个表向另外一个表拷贝数据
2010-07-28 09:07
232 查看
用户经常需要把Excel的数据导入SQL中,只有这样先导入到一个表中,然后再对这个表进行处理。由于目标表的数据不能清空。数据存在的,需要作更新动作,不存在的,需要做插入动作。
代码
DECLARE @N INT = 1
DECLARE @ROWS INT = (SELECT MAX([ID]) FROM [dbo].[Loose04])
WHILE @N <= @ROWS
BEGIN
--宣告临时变量,存储每笔记录需要异动的字段信息。
DECLARE @ItemCode NVARCHAR(100),@ItemGeneralName NVARCHAR(200),@Specification NVARCHAR(200)
--把异动的字段信息存入变量中。
SELECT @ItemCode = [Partno],@ItemGeneralName = [Partname],@Specification = [Specification] FROM [dbo].[Loose04] WHERE [Id] = @N
IF EXISTS (SELECT [ItemCode] FROM [dbo].[ItemGeneral] WHERE [ItemCode] = @ItemCode)
--如果存在记录,作更新[ItemGeneralName]和[Specification]字段。
UPDATE [dbo].[ItemGeneral] SET [ItemGeneralName] = @ItemGeneralName,[Specification] = @Specification WHERE [ItemCode] = @ItemCode
ELSE
--如果不存在,作插入动作。
INSERT INTO [dbo].[ItemGeneral] ([ItemCode],[ItemGeneralName],[Specification]) VALUES (@ItemCode,@ItemGeneralName,@Specification)
SET @N = @N + 1
END
代码
DECLARE @N INT = 1
DECLARE @ROWS INT = (SELECT MAX([ID]) FROM [dbo].[Loose04])
WHILE @N <= @ROWS
BEGIN
--宣告临时变量,存储每笔记录需要异动的字段信息。
DECLARE @ItemCode NVARCHAR(100),@ItemGeneralName NVARCHAR(200),@Specification NVARCHAR(200)
--把异动的字段信息存入变量中。
SELECT @ItemCode = [Partno],@ItemGeneralName = [Partname],@Specification = [Specification] FROM [dbo].[Loose04] WHERE [Id] = @N
IF EXISTS (SELECT [ItemCode] FROM [dbo].[ItemGeneral] WHERE [ItemCode] = @ItemCode)
--如果存在记录,作更新[ItemGeneralName]和[Specification]字段。
UPDATE [dbo].[ItemGeneral] SET [ItemGeneralName] = @ItemGeneralName,[Specification] = @Specification WHERE [ItemCode] = @ItemCode
ELSE
--如果不存在,作插入动作。
INSERT INTO [dbo].[ItemGeneral] ([ItemCode],[ItemGeneralName],[Specification]) VALUES (@ItemCode,@ItemGeneralName,@Specification)
SET @N = @N + 1
END
相关文章推荐
- SQL从一个库把数据导到另外一个库
- 使用db link 把ORACLE 数据库中的表复制到另外一个数据库,也可以把表中的数据从一个库复制到另外一个库的表
- Java从一个数组指定位置拷贝到另外一个数组的指定位置-新法
- 从一个表数据导入到另外一个表
- Mysql从一个表获取数据插入另外一个表[备忘]
- MYSQL从一个数据库的表中读出数据 循环向另外一个库的表中写入数据
- informix 把数据从一个表倒到另外一个表中
- SQL从一个表查询数据更新到另外一个表
- 从一个文件中读取数据到内存,然后再把内存中的数据写入另外一个文件
- 通过超链接从一个页面向另外一个页面传数据
- 定时从一个数据库表中的数据存储到另外一个数据库中的表,而且怎么处理重复的数据?
- 三条命令实现Mysql,InnoDB数据从一台服务器拷贝到另外一台服务器
- informix 把数据从一个表倒到另外一个表中
- 给大家说明怎么从一台sql server服务器拷贝数据到另外一台sql server服务器
- oracle 从一个表复制、更新数据到另外一个表
- 拷贝一个用户下的所有表和数据到另外一个库
- 从一个表导数据到另外一个表,但是字段不同
- oracle imp命令,将数据从一个用户导出的dmp数据,导入到另外一个用户下面。
- 把一个用sql server 2005内置加密方法加密数据的DB从一台电脑备份后,还原到另外一台电脑上,出现的问题的处理办法
- java实现从一个数据库查询数据经过处理导入另外一个数据库中