September 25, 2012 at 1:12 am
Hi Guys,
I have an MIS system where I have to run 15 queries and update 15 sheets which takes a lot of time as I need to make changes in the dates present in the queries, say 3 date variables in each query which have to be updated to the current date.
I understand that creating dynamic SP can solve my problem but I need some guidance on them.
Can any of you suggest on my problem?
Thanks,
Prasanna
September 25, 2012 at 1:28 am
I'm sure there would be a way of passing the required dates as a variable to the stored procedures., or, if it is always the current date, why not use the GETDATE() function.
If these two ideas can't work, then post one of your simpler stored procs, with an explanation of the dates you need to change.
September 25, 2012 at 1:55 am
Duplicate post - please reply to
http://www.sqlservercentral.com/Forums/FindPost1363825.aspx
For fast, accurate and documented assistance in answering your questions, please read this article.
Understanding and using APPLY, (I) and (II) Paul White
Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden
September 25, 2012 at 2:05 am
Thanks for the quick reply t.brown.
I don't have stored procedures, what I have are a set of create table statements having Select queries with multiple conditions. Some of the conditions include filters for the current date like:
'Create table emp_hrs as
(select count(emp_hours) from Emp_table where emp_name='BOB' and func_date='2012-09-19')
And there are multiple insert statements to create one table by pulling out the data from multiple tables as created above.
I have to use a 'select * from' statement to pull out the data from the final table.
I hope you get a picture of this.
Thanks,
Prasanna
September 25, 2012 at 2:54 am
Yes dynamic SQL would seem appropriate.
Basically you create your entire SQL Statement in a string then call EXEC on it.
e.g.
DECLARE @sql Varchar(MAX);
DECLARE @TODAY Varchar(10);
SELECT @TODAY = CONVERT( VARCHAR(10),GETDATE(), 120);
SET @sql = 'Create table emp_hrs as
(select count(emp_hours) from Emp_table where emp_name=''BOB'' and func_date=''' + @TODAY + ''')'
EXEC (@SQL)
You can then chain all 15 of these together into a single stored procedure.
September 25, 2012 at 3:07 am
t.brown 89142 (9/25/2012)
Yes dynamic SQL would seem appropriate.Basically you create your entire SQL Statement in a string then call EXEC on it.
e.g.
DECLARE @sql Varchar(MAX);
DECLARE @TODAY Varchar(10);
SELECT @TODAY = CONVERT( VARCHAR(10),GETDATE(), 120);
SET @sql = 'Create table emp_hrs as
(select count(emp_hours) from Emp_table where emp_name=''BOB'' and func_date=''' + @TODAY + ''')'
EXEC (@SQL)
You can then chain all 15 of these together into a single stored procedure.
Duplicate post - please reply to
http://www.sqlservercentral.com/Forums/FindPost1363825.aspx
For fast, accurate and documented assistance in answering your questions, please read this article.
Understanding and using APPLY, (I) and (II) Paul White
Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden
September 25, 2012 at 3:26 am
Thanks a lot, will try this....
September 25, 2012 at 3:34 am
ChrisM@Work (9/25/2012)
t.brown 89142 (9/25/2012)
Yes dynamic SQL would seem appropriate.Basically you create your entire SQL Statement in a string then call EXEC on it.
e.g.
DECLARE @sql Varchar(MAX);
DECLARE @TODAY Varchar(10);
SELECT @TODAY = CONVERT( VARCHAR(10),GETDATE(), 120);
SET @sql = 'Create table emp_hrs as
(select count(emp_hours) from Emp_table where emp_name=''BOB'' and func_date=''' + @TODAY + ''')'
EXEC (@SQL)
You can then chain all 15 of these together into a single stored procedure.
Duplicate post - please reply to
I give up!
For fast, accurate and documented assistance in answering your questions, please read this article.
Understanding and using APPLY, (I) and (II) Paul White
Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden
Viewing 8 posts - 1 through 7 (of 7 total)
You must be logged in to reply to this topic. Login to reply