SQL Server - 生成没有主键的脚本

Lea*_*dro 13 sql sql-server migration

我正在寻找答案,但我找不到它.

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

那么,有一种方法可以在SQL Server Manager中创建此脚本并避免使用主键的字段吗?我将所有属性(主要,唯一等)设置为false,但脚本仍在发送此字段(例如,RecID 1,2,3等).

我正在使用SQL Server 2012.

亲切的问候,

任何解决方案(除了用Notepad ++删除它)都是预先确定的.请在downvoted之前询问/编辑,抱歉我的英文:)

更新:我的脚本配置:

在此输入图像描述

结果我得到:

SET IDENTITY_INSERT -TABLE- ON 
INSERT INTO TABLE (ID,Field1) VALUES (1,'value')
Run Code Online (Sandbox Code Playgroud)

Fli*_*rPA 14

一些工作,但有时快速和脏的方式做这些事情:

SELECT 'INSERT INTO TABLE (Field1) VALUES (''' + Field1 + ''')' FROM TABLE
Run Code Online (Sandbox Code Playgroud)

对于表TABLE中的每一行,结果集将是每个insert语句的一行.INSERT语句是通过将INSERT语句文本与Field1中的值连接而生成的.

  • 它在许多情况下都很方便,当你需要转换数据并且没有正则表达式时,它已经多次保存了几次! (2认同)

Whe*_*ism 5

还有另一种方法可以做到这一点,当您有许多不同数据类型的列时,它会更自动化,并且工作量也更少。给定表T:

(
  ID int identity,
  C1 nvarchar(255),
  C2 datetime
  ...
)
Run Code Online (Sandbox Code Playgroud)

...选择身份列以外的所有内容到新表中:

select C1, C2, ... into InterimTable from T
Run Code Online (Sandbox Code Playgroud)

然后:

  1. 在上运行“生成脚本”向导InterimTable
  2. 使用所需的任何工具搜索SQL InterimTable并替换为T