Wednesday, June 26, 2013

sp_executesql using cursor


truncate table SQLtoExec
drop table SQLtoExec

create table SQLtoExec (
sqlTEXT varchar(120) NOT NULL
-- , VendorCompanyId int NOT NULL
-- , fyenddate varchar(20) NOT NULL
)

INSERT INTO SQLtoEXEC
SELECT 'DELETE FROM vendorfinancecolumnar WHERE vendorcompanyid = '+ ltrim(str(vendorcompanyid)) + ' AND fyenddate = '''+ ltrim(cast(fyenddate as varchar(100))) + '''' 
FROM vendorfinancecolumnar 
WHERE vendordataperiodid = (
select vendordataperiodid 
from vendordataperiod
where vendorproviderid = 3 
and dataperiodid = 51)
GROUP BY vendorcompanyid, fyenddate
HAVING count(vendorcompanyid) > 1



DECLARE @sqlText nvarchar(120)

-- ########################################################################
DECLARE myCursor CURSOR FORWARD_ONLY READ_ONLY FOR

SELECT top 1000 sqlText
FROM sqlToEXEC

OPEN myCursor

     FETCH NEXT FROM myCursor
     INTO @sqlText
    
     WHILE @@FETCH_STATUS = 0
     BEGIN    
         
 EXECUTE sp_executesql @sqlText
                                               
          -- Get the next record.
          FETCH NEXT FROM myCursor
          INTO @sqlText
     END

CLOSE myCursor
DEALLOCATE myCursor

--drop table #myTable

Thursday, June 20, 2013

Linked Server

/*
EXEC sp_addlinkedserver
   @server = '[type Linked Server Name]',
   @provider = 'Microsoft.Jet.OLEDB.4.0',
   @srvproduct = 'OLE DB Provider for Jet',
   @datasrc = '\\servername\myAccessDBlocation\my.mdb'
GO
*/

Excel formulas: increments months or years or days

Incrementing Months in Excel