Sql 如何创建创建表的脚本

Sql 如何创建创建表的脚本,sql,sql-server,insert,ssms,Sql,Sql Server,Insert,Ssms,我正在使用SQL Server Management Studio 2017。我在本地机器上有一张桌子。假设它的名字是Email。在电子邮件表中,有一种列名语言,其值可以是“en”或“zh”。在这个语言专栏旁边,还有一些专栏 现在,我的同事也有相同的表,但不同的机器,他只有语言为en的行。他还没有语言不通的那一行 如何使用此软件生成SQL脚本,将数据插入到他的表中,但只在Language='zh'的位置使用行,以便两个表都相同 更清楚地说,我需要向他发送INSERT脚本,其中还包含数据的值,以便

我正在使用SQL Server Management Studio 2017。我在本地机器上有一张桌子。假设它的名字是Email。在电子邮件表中,有一种列名语言,其值可以是“en”或“zh”。在这个语言专栏旁边,还有一些专栏

现在,我的同事也有相同的表,但不同的机器,他只有语言为en的行。他还没有语言不通的那一行

如何使用此软件生成SQL脚本,将数据插入到他的表中,但只在Language='zh'的位置使用行,以便两个表都相同

更清楚地说,我需要向他发送INSERT脚本,其中还包含数据的值,以便他可以使用该脚本将数据插入到本地机器中的数据库中

还是有别的办法

这就是你想要的吗

insert into colleague.dbo.email ( . . . )
    select . . . 
    from my.dbo.email
    where language = 'zh';

有两种方法-第一种方法很快,不需要代码,但您需要手动删除自己不想要的行,另一种方法更灵活,但您必须编写代码。也有第三方的工具,你可以为你做到这一点

如果只想执行一次,可以执行以下操作这是来自不同版本的SSMS,但应该是类似的

右键单击数据库,选择任务,选择生成脚本。然后选择所需的表,进入下一步,然后在“高级设置”中找到要编写脚本的数据类型并将其更改为数据。这将生成一个脚本来加载表中的所有数据——您需要对其进行编辑,以便只加载所需的行

另一种选择是编写一个脚本,基本上让您自己生成所需的数据。您需要将其设置为开始,并在更改表格格式时进行调整,但您可以编辑选择脚本,使其仅获取所需的数据。我相信你可以写一个脚本,自动为你创建这个,但我从来没有需要过,所以我没有想过

像这样的

With baseRows as 
(
    --This bit gets the data you want
    Select E.*
        , ROW_NUMBER() over(ORDER BY ID) as RowNo
    From dbo.Email E
    Where E.Language = 'zh'  -- whatever selection you need here
)
, selectRows as
(
    --This bit creates the data select statments to set the data to import
    Select
            case when BR.RowNo = 1 then '' else 'Union All ' end
            + 'Select ' 
            + convert(varchar(10), BR.userID) + ' as userID, '  -- required integer example
            + case when BR.backupID is null then 'NULL' else CONVERT(varchar(10), BR.backupID) end + ' as backupID, '  -- nullable integer example
            + '''' + BR.Name + ''' as name, '  -- required nvarchar example
            + case when BR.groupname IS null then 'NULL' else '''' + BR.groupname + '''' end + ' as groupname, '  --nullable varchar example
            + CONVERT(varchar(2), BR.isActive) + ' as isActive, '  --bit example        
        as SQL
    from baseRows BR
)

Select  
    --This creates the insert command row (top row) of the final query
  'Insert into Email (
      userID
      , backupID
      , name
      , groupName
      , IsActive
)' as SQL
UNION ALL
Select SQL from baseRows   --and adds the data to the following rows

如果运行此脚本,输出将是要将数据加载到另一台计算机中的脚本。

右键单击数据库名称表,其中数据库-->任务-->生成脚本-->下一步-->选择特定数据库对象-->选择表-->保存到文件=高级-->单击高级-->数据类型到脚本=仅数据-->指定存储路径insert命令

但是我们是不同的机器,所以我想要的是一个脚本文件发送到他的机器,在这个文件中,脚本还将包含values@NgocTuanLam . . . 只需使用链接服务器。