复制和更新sql server数据,同时保持表数据的完整性

时间:2016-02-05 07:20:22

标签: sql sql-server database tsql

我有一个表格,其架构看起来像这样

SELECT TOP 1000 [id]
  ,[key]
  ,[value]
  ,[created]
FROM [ESO].[dbo].[tblKeyValueStore]

我想最终制作一个包含密钥的每一行的副本=" links:applications"并创建新记录(不更新),其中addtional新密钥将包含相同的值,但新创建的密钥是" links:boa"

对我来说,有很多方法可以做到这一点,但有些方法非常繁琐。我不喜欢乱用SSMS GUI与Select和复制粘贴,因为我最终还想在脚本中创建这些新记录,然后才能插入它们插入生产数据库

  1. 我应该将数据导出为key =" links:applications" ,然后对该数据运行更新以更改脚本以使varchar字符串为" links:boa"然后插入?
  2. 我认为这样做似乎有点混乱,因为导出脚本不是真正的数据,然后很容易更新并插回到这个表中吗?

1 个答案:

答案 0 :(得分:1)

您可以直接selectinsert,但我认为[id]是自动增量

INSERT INTO [ESO].[dbo].[tblKeyValueStore] ([key], [value], [created])
SELECT 
   'links:boa' [key]
  ,[value]
  ,[created]
FROM [ESO].[dbo].[tblKeyValueStore]
WHERE [key]='links:applications'