[dba-SQLServer] Stored Procedure help
Scott Marcus
scott.marcus at tsstech.com
Thu Oct 8 12:18:25 CDT 2015
John,
I do not see any begin or end statements in the procedure you included (or a properly formatted parameter list). Did you give us a complete copy of your procedure?
Thanks,
Scott Marcus
-----Original Message-----
From: dba-SQLServer [mailto:dba-sqlserver-bounces at databaseadvisors.com] On Behalf Of Scott Marcus
Sent: Thursday, October 8, 2015 1:12 PM
To: 'Discussion concerning MS SQL Server' <dba-sqlserver at databaseadvisors.com>
Subject: Re: [dba-SQLServer] Stored Procedure help
John,
I'm sorry. I see that you did include the procedure.
Scott Marcus
-----Original Message-----
From: dba-SQLServer [mailto:dba-sqlserver-bounces at databaseadvisors.com] On Behalf Of Scott Marcus
Sent: Thursday, October 8, 2015 1:07 PM
To: 'Discussion concerning MS SQL Server' <dba-sqlserver at databaseadvisors.com>
Subject: Re: [dba-SQLServer] Stored Procedure help
John,
I have lots of stored procedures that do not end with a select statement. Please include your procedure so that we can have a look at what you are doing.
Scott Marcus
-----Original Message-----
From: dba-SQLServer [mailto:dba-sqlserver-bounces at databaseadvisors.com] On Behalf Of John Colby
Sent: Thursday, October 8, 2015 12:58 PM
To: Discussion concerning MS SQL Server <dba-sqlserver at databaseadvisors.com>
Subject: Re: [dba-SQLServer] Stored Procedure help
I tried that as well. An EXEC is not a Select and cannot be placed at the bottom of the SP. The compiler will complain.
ONLY A SELECT can be the last line AFAICT.
I thought I would do a "select * from @RptName" where I passed in the name of the CTE. That failed (compile errors). This one is strange because I can pass in the fully qualified path (SELECT * FROM DBName.DBI.ViewName) to an Exec(@SQL) and it will execute and return results,
I created a dynamic SQL statement and tried to EXEC(@SQL) and that failed (Compile errors).
On Thu, Oct 8, 2015 at 12:26 PM, Scott Marcus <scott.marcus at tsstech.com>
wrote:
> You could store the SQL statement in a variable and then execute the
> stored value outside the if statement.
>
> Here is the link for that...
>
> https://msdn.microsoft.com/en-us/library/ms188332.aspx
>
> -----Original Message-----
> From: dba-SQLServer
> [mailto:dba-sqlserver-bounces at databaseadvisors.com]
> On Behalf Of John Colby
> Sent: Thursday, October 8, 2015 12:21 PM
> To: Discussion concerning MS SQL Server <
> dba-sqlserver at databaseadvisors.com>
> Subject: Re: [dba-SQLServer] Stored Procedure help
>
> Yes but this doesn't work at the bottom of my stored procedure, I have
> already tried it.
>
> I have perhaps 10 Common Table Expressions. At the bottom, below all
> of those CTEs I MUST HAVE a select statement or the compiler complains.
>
> The select statement can be anything, it doesn't have to reference one
> of the CTEs but it has to be a select.
>
> On Thu, Oct 8, 2015 at 12:13 PM, Scott Marcus
> <scott.marcus at tsstech.com>
> wrote:
>
> > John,
> >
> > IF @variable = 'First'
> > BEGIN
> > SELECT * FROM cteMoveNewOld
> > END
> > ELSE IF @variable = 'Second'
> > BEGIN
> > SELECT * FROM cteMoveNewOldWithRowNum END ELSE IF...
> >
> > You get the picture
> >
> > -----Original Message-----
> > From: dba-SQLServer
> > [mailto:dba-sqlserver-bounces at databaseadvisors.com]
> > On Behalf Of John Colby
> > Sent: Thursday, October 8, 2015 11:51 AM
> > To: Discussion concerning MS SQL Server <
> > dba-sqlserver at databaseadvisors.com>
> > Subject: [dba-SQLServer] Stored Procedure help
> >
> > I have a stored procedure where I built up a bunch of common table
> > expressions to do various things related to counting data.
> >
> > At the bottom I have a bunch of Select statements which I would like
> > to select ONE from by passing in a parameter.
> >
> > ALTER PROCEDURE [dbo].[usp_MoveDistance] @FromYrMo as char(6),
> > @ToYrMo as
> > char(6)
> >
> > A bunch of CTEs here
> >
> > --SELECT * FROM cteMoveNewOld
> > --SELECT * FROM cteMoveNewOldWithRowNum --SELECT * FROM cteMoveLast
> > --SELECT * from cteMoveLastWithDistance SELECT * FROM
> > cteMoveLastDistance_GrpBySt_DistanceCode
> > --SELECT * FROM cteMoveLastDistance_GrpByMSA_DistanceCode
> > --Select * from cteMoveLastDistance_GrpByStNew_StOld
> >
> > My current method is to come in and uncomment one line, run the SP,
> > comment that out, uncomment another, run that.
> >
> >
> > So I want to add a new input variable to pass in a report name and
> > use that to select one of the CTEs.
> >
> > ALTER PROCEDURE [dbo].[usp_MoveDistance] @RptName varchar(50),
> > @FromYrMo as char(6), @ToYrMo as char(6)
> >
> > AFAICT the ONLY thing I can do as the last line of the SP is a
> > select, which is why I currently uncomment one of the lines to run it.
> >
> > Is there any way to use an IF as the last line (block) to select one
> > of the selects to return data?
> >
> >
> > --
> > John W. Colby
> > Colby Consulting
> > _______________________________________________
> > dba-SQLServer mailing list
> > dba-SQLServer at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
> > http://www.databaseadvisors.com
> >
> >
> > NOTICE: This electronic mail transmission is for the use of the
> > named individual or entity to which it is directed and may contain
> > information that is privileged or confidential. If you are not the
> > intended recipient, any disclosure, copying, distribution or use of
> > the contents of any information contained herein is prohibited. If
> > you have received this electronic mail transmission in error, delete
> > it from your system without copying or forwarding it, and notify the
> > sender of the error by replying via email or calling TSS
> > Technologies at (513) 772-7000, so that our address record can be corrected.
> > Any information included in this email is provided on an "as is" and
> > "where as" basis, and TSS Technologies makes no representations or
> > warranties of any kind with respect to the completeness or accuracy
> > of the information contained in this email.
> >
> > _______________________________________________
> > dba-SQLServer mailing list
> > dba-SQLServer at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
> > http://www.databaseadvisors.com
> >
> >
>
>
> --
> John W. Colby
> Colby Consulting
> _______________________________________________
> dba-SQLServer mailing list
> dba-SQLServer at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
> http://www.databaseadvisors.com
>
>
> _______________________________________________
> dba-SQLServer mailing list
> dba-SQLServer at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
> http://www.databaseadvisors.com
>
>
--
John W. Colby
Colby Consulting
_______________________________________________
dba-SQLServer mailing list
dba-SQLServer at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
http://www.databaseadvisors.com
_______________________________________________
dba-SQLServer mailing list
dba-SQLServer at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
http://www.databaseadvisors.com
_______________________________________________
dba-SQLServer mailing list
dba-SQLServer at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
http://www.databaseadvisors.com
More information about the dba-SQLServer
mailing list