17

我正在尝试为我的数据生成一个脚本(我的意思是,所有的 INSERT INTO 命令)。因为访问权限,我不能执行 SET IDENTITY_INSERT TABLE OFF 和 ON(我在 Staging 中使用用户应用程序)

那么,有没有办法在 SQL Server 管理器中制作这个脚本,避免带有主键的字段呢?我将所有属性(主要、唯一等)设置为 false,但脚本仍在发送此字段(例如,RecID 1、2、3 等)。

我正在使用 SQL Server 2012。

我的脚本配置:

在此处输入图像描述

我得到的结果:

SET IDENTITY_INSERT -TABLE- ON 
INSERT INTO TABLE (ID,Field1) VALUES (1,'value')

任何解决方案(除了使用 Notepad++ 删除它)都值得赞赏。

4

2 回答 2

16

一些解决方法,但有时有用的快速而肮脏的方式来做这些事情:

SELECT 'INSERT INTO TABLE (Field1) VALUES (''' + Field1 + ''')' FROM TABLE

结果集将是表 TABLE 中每一行的每个插入语句的一行。INSERT 语句是通过连接 INSERT 语句文本与 Field1 中的值生成的。

于 2013-05-14T18:55:36.603 回答
7

当您有很多不同数据类型的列时,还有另一种方法可以更自动化且不那么繁琐;给定一个表 T:

(
  ID int identity,
  C1 nvarchar(255),
  C2 datetime
  ...
)

...选择除标识列之外的所有内容到新表中:

select C1, C2, ... into InterimTable from T

然后:

  1. 在 上运行生成脚本向导InterimTable
  2. 使用任何工具来搜索 SQLInterimTable并替换为T
于 2018-08-14T09:23:37.197 回答