当前位置: 首页 > 面试题库 >

T-SQL插入表中,而不必指定每一列

阎枫涟
2023-03-14
问题内容

在我们的数据库中,有一个表,该表有80多个列。它具有一个主键,并且身份插入已打开。我正在寻找一种方法,可以将
来自不同DB中相同表的主键列之外的所有列插入该表中。

这可能吗?


问题答案:

您实际上可以很容易地做到这一点:

-- Select everything into temp table
Select * Into 
    #tmpBigTable
    From [YourBigTable]

-- Drop the Primary Key Column from the temp table  
Alter Table #tmpBigTable Drop Column [PrimaryKeyColumn]

-- Insert that into your other big table
Insert Into [YourOtherBigTable]
    Select * From #tmpBigTable

-- Drop the temp table you created
Drop Table #tmpBigTable

只要您在“ YourOtherBigTable”中具有“身份插入”且列完全相同,就可以了。



 类似资料:
  • 我有一个表USER\u ROLES,有5列。此外,还有一个类UserRole,其字段和名称的数量与USER\u角色相同。 我试图插入一行而不指定列名: 但是当我尝试创建行时,我得到了这个错误: 我必须指定列名吗?

  • 问题内容: 我有一张表,其中每当发生插入时所有列都会自动填充: 如何编写一条SQL语句,将新行插入到该表中,而无需手动提供要插入的任何具体值? 问题答案: 使用选项:

  • 我从复选框中得到了这个数组 PHP查询 我希望插入数组中的数据,而不是在每一行上插入数据。我希望数据以逗号分隔,如data1、data2、data3,然后插入它。

  • 我有以下代码: 其中,是一个标识列,其中不允许有空值。在我的Excel文件中,该列是空的(除了标题) 我得到以下错误消息: 无法将值NULL插入列AmountId中,表AnalyticsV2P7. CapModel. LedgerAmountByECMAcCountByRptLOB;列不允许空值。INSERT失败。 我知道不允许有空值,因为我是这样设置的,但它不应该填充标识列,这样就没有空值了吗?

  • 问题内容: 我想在表中添加可变数量的记录(天) 我已经看到了一个很好的解决方案: 但是可悲的是,这在UDF中不起作用(因为#temp和SET ROWCOUNT)。知道如何实现吗? 目前,我正在使用WHILE和表变量来完成此操作,但是就性能而言,这并不是一个好的解决方案。 问题答案: 这是我正在使用的方法,并且对于我的目的和使用SQL 2000来说效果最佳。因为就我而言,它位于UDF中,所以我不能使

  • 我正在寻找必须在ms sql服务器中转义的特殊字符列表,但找不到我看到的类似问题的大部分答案,建议使用参数化查询...我已经在做了,但我使用的框架不会为我做任何转义。 因此,我想我会试一试,看看哪一个失败了......我尝试了一个简单的查询 在这样的查询中,我尝试了键盘上能找到的几乎所有字符,所有字符似乎都能正常工作。。。除了单引号。。那一个失败了。 因此,我想知道ms sql server-ts