Internet Engineer Internet Engineer - 4 months ago 22
SQL Question

insert into values with where clause

I am trying to programmatically enter values into my table.

I cannot use a straight Select @variables. I have to use the keyword Values.

How can I create a where clause when using Values in the insert into.

I am trying to avoid duplicates

DECLARE @MyID INT
DECLARE @Phone varchar(10)
DECLARE @MyDATE DateTime
DECLARE @Agent as varchar(50)
DECLARE @Charge as varchar(50)
DECLARE @Vendor as varchar(50)

SET @MyID = 215199999
SET @Phone = '9999999999'
SET @MyDATE = '2010-12-04 11:56:12.000'
SET @Agent = 'fbrown'
SET @Charge = 'NO'
SET @Vendor = 'NO'

INSERT INTO [MyDB].[dbo].[Accounts]
(MyID,Phone,MyDate,Agent,Charge,Vendor)
VALUES (
@MyID
,@Phone
,@MyDATE
,@Agent
,@Charge
,@Vendor
) WHERE MyID NOT IN (@MyID)

Answer
IF NOT EXISTS(SELECT 1 FROM [MyDB].[dbo].[Accounts] WHERE MyID = @MyID)
    INSERT INTO [MyDB].[dbo].[Accounts]
        (MyID, Phone, MyDate, Agent, Charge, Vendor)
        VALUES 
        (@MyID, @Phone, @MyDATE, @Agent, @Charge, @Vendor)