【发布时间】:2018-05-16 16:40:27
【问题描述】:
当我执行以下过程时,我收到此警告:
正在尝试将不可为 NULL 的列的值设置为 NULL。
USE [DbTwo]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
alter proc [dbo].[TEST_warning_proc]
as
IF OBJECT_ID('MySchema..vitals', 'U') IS NOT NULL DROP TABLE MySchema..vitals
IF OBJECT_ID('MySchema..order_list', 'U') IS NOT NULL DROP TABLE MySchema..order_list
select * into MySchema..vitals
from DbOne..vitals
where FacilityID in
(select FacilityID from DbTwo..MySchemaFacilities)
select * into MySchema..order_list
from DbOne..order_list
where FacilityID in
(select FacilityID from DbTwo..MySchemaFacilities)
既然我正在执行 SELECT * INTO,这怎么可能?那不应该创建一个完全反映原始表的新表吗?
我试过设置:
SET ANSI_WARNINGS OFF
但这没有帮助。
【问题讨论】:
-
你的表有计算列吗?
-
您是在使用 select *,还是为了简洁而缩短了查询?如果是后者,您是否可以添加任何您正在调用的任何内置或标量函数(cast、left、ufn() 等)的列或任何不简单列出列名的列?
标签: sql-server nullable suppress-warnings select-into