Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
插入SQL Server 2008 R2的选择顺序_Sql_Sql Server 2008_Select_Sql Server 2008 R2_Insert Into - Fatal编程技术网

插入SQL Server 2008 R2的选择顺序

插入SQL Server 2008 R2的选择顺序,sql,sql-server-2008,select,sql-server-2008-r2,insert-into,Sql,Sql Server 2008,Select,Sql Server 2008 R2,Insert Into,我有一个查询,在其中我创建了一个表,然后将数据插入其中。我的问题是,我有一个专栏,我需要使数据清晰,我的输出似乎工作正常,但我想澄清这是否是一个可接受的做法 以下是我的查询: DECLARE @T1 TABLE( MRN VARCHAR(20) , [ENCOUNTER] VARCHAR(200) , ... , ... , ... ) INSERT INTO @T1 SELECT A.Med_Rec_No , A.[VISIT ID] , ... , ... , ... ) FROM (

我有一个查询,在其中我创建了一个表,然后将数据插入其中。我的问题是,我有一个专栏,我需要使数据清晰,我的输出似乎工作正常,但我想澄清这是否是一个可接受的做法

以下是我的查询:

DECLARE @T1 TABLE(
MRN VARCHAR(20)
, [ENCOUNTER] VARCHAR(200)
, ...
, ...
, ...
)

INSERT INTO @T1
SELECT
A.Med_Rec_No
, A.[VISIT ID]
, ...
, ...
, ...
)

FROM (
    SELECT DISTINCT PAV.PTNO_NUM AS [VISIT ID] -- MUST I CHANGE THE ORDER?
    , PAV.Med_Rec_No                           -- MUST I CHANGE THE ORDER?
    , ...
    , ...
    , ...
)
INSERT-INTO@T1-SELECT
是否为我处理了排序问题,也就是说,只要我的
INSERT-INTO
与我的
DECLARE@T1-TABLE
相符,我在
FROM
语句中选择
项的顺序真的重要吗


谢谢,

在执行
从SELECT插入时,您必须匹配
SELECT
语句中列的顺序,就像它们在
插入
语句中一样

另一方面,现在您不需要将
INSERT
语句中的列顺序与
CREATE TABLE
中的列顺序相匹配

始终建议在
INSERT
语句中指定
。否则,您将假定所选内容与要插入的表中的列顺序匹配

在您的情况下,您应该像这样修改查询

INSERT INTO @T1 (MRN, Encounter)
SELECT
A.Med_Rec_No
, A.[VISIT ID]
, ...
, ...
, ...
)

FROM (
    SELECT DISTINCT PAV.PTNO_NUM AS [VISIT ID] 
    , PAV.Med_Rec_No                          
    , ...
    , ...
    , ...
)
或者,您可以修改
INSERT
子句中列的顺序

INSERT INTO @T1 (Encounter,MRN)
SELECT
A.[VISIT ID]
,A.Med_Rec_No 
, ...
, ...
, ...
)

FROM (
    SELECT DISTINCT PAV.PTNO_NUM AS [VISIT ID] 
    , PAV.Med_Rec_No                          
    , ...
    , ...
    , ...
)