65.9K
CodeProject is changing. Read more.
Home

INSERT with SELECT vs INSERT with VALUES

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.92/5 (6 votes)

Nov 30, 2010

CPOL
viewsIcon

9450

You might want to do some further testing... It seems if you perform the following, the values are actually the same:SET NOCOUNT ONDECLARE @TMP TABLE( EmpName VARCHAR(50), Age INT)PRINT CONVERT(VARCHAR, GETDATE(), 121)INSERT INTO @TMP(EmpName, Age)SELECT 'Ravi Kiran',...

You might want to do some further testing... It seems if you perform the following, the values are actually the same:
SET NOCOUNT ON

DECLARE @TMP TABLE
(
  EmpName VARCHAR(50), Age INT
)

PRINT CONVERT(VARCHAR, GETDATE(), 121)
INSERT INTO @TMP(EmpName, Age)SELECT 'Ravi Kiran', 36
PRINT CONVERT(VARCHAR, GETDATE(), 121)
INSERT INTO @TMP(EmpName, Age)VALUES ('Ravi Kiran', 36)
PRINT CONVERT(VARCHAR, GETDATE(), 121)
INSERT INTO @TMP(EmpName, Age)SELECT 'Ravi Kiran', 36
PRINT CONVERT(VARCHAR, GETDATE(), 121)
INSERT INTO @TMP(EmpName, Age)VALUES ('Ravi Kiran', 36)
PRINT CONVERT(VARCHAR, GETDATE(), 121)

SET NOCOUNT OFF
Secondly, if you flip the order, the results match the original query:
SET NOCOUNT ON

DECLARE @T2MP TABLE
(
  EmpName VARCHAR(50), Age INT
)

PRINT CONVERT(VARCHAR, GETDATE(), 121)
INSERT INTO @T2MP(EmpName, Age)VALUES ('Ravi Kiran', 36)
PRINT CONVERT(VARCHAR, GETDATE(), 121)
INSERT INTO @T2MP(EmpName, Age)SELECT 'Ravi Kiran', 36
PRINT CONVERT(VARCHAR, GETDATE(), 121)

SET NOCOUNT OFF
Both of these contradict the results you concluded.