Search This Blog

Thursday, July 28, 2011

SQL SERVER – Insert Data From One Table to Another Table – INSERT INTO SELECT – SELECT INTO TABLE




How to insert data from one table to another table efficiently?
How to insert data from one table using where condition to anther table?
How can I stop using cursor to move data from one table to another table?


There are two different ways to implement inserting data from one table to another table. I strongly suggest to use either of the method over cursor. Performance of following two methods is far superior over cursor. I prefer to use Method 1 always as I works in all the case.

Method 1 : INSERT INTO SELECT
This method is used when table is already created in the database earlier and data is to be inserted into this table from another table. If columns listed in insert clause and select clause are same, they are are not required to list them. I always list them for readability and scalability purpose.

GO
----Create TestTable
CREATE TABLE TestTable (FirstName VARCHAR(100), LastName VARCHAR(100))
----INSERT INTO TestTable using SELECT
INSERT INTO TestTable (FirstName, LastName)
SELECT FirstName, LastName
FROM Person.Contact
WHERE EmailPromotion = 2
----Verify that Data in TestTable
SELECT FirstName, LastName
FROM TestTable
----Clean Up Database
DROP TABLE TestTable
GO

Method 2 : SELECT INTO
This method is used when table is not created earlier and needs to be created when data from one table is to be inserted into newly created table from another table. New table is created with same data types as selected columns.



GO
----Create new table and insert into table using SELECT INSERT
SELECT FirstName, LastName
INTO TestTable
FROM Person.Contact
WHERE EmailPromotion = 2
----Verify that Data in TestTable
SELECT FirstName, LastName
FROM TestTable
----Clean Up Database
DROP TABLE TestTable
GO

Procedure or function '' expects parameter '', which was not supplied. exception in sql server while passing parameters from asp.net

Q : Procedure or function '' expects parameter '', which was not supplied.

A:

Below proc throwing the exception if you pass null from ado.net to the stored procedure parameters



alter PROCEDURE [dbo].SP_UpdateHomePageContentDetails
@VideoLink varchar(65) ,
@VideoLinkDescription varchar(65) ,
@P_ReturnValue varchar(50) output
AS
BEGIN



Solution for the above problem is passing null to the parameters as a default value



alter PROCEDURE [dbo].SP_UpdateHomePageContentDetails
@VideoLink varchar(65) = null,
@VideoLinkDescription varchar(65) = null,
@P_ReturnValue varchar(50) output
AS
BEGIN


Popular Posts