Solved

SQL Server returns error during SQLCMD that doesn't fail when executed in SQL Management Studio

Posted on 2010-11-29
3
624 Views
Last Modified: 2012-05-10
I've got a sql command file which executes without error when I run it inside Management Studio. However, when I run it using sqlcmd from a command prompt I get the following errors:

Msg 1023, Level 15, State 1, Server SQL1/SQLEXPRESS, Line 13
Invalid parameter 1 specified for datepart.
Msg 1023, Level 15, State 1, Server SQL1/SQLEXPRESS, Line 22
Invalid parameter 1 specified for datepart.

I have no idea why it would work in studio but not from sqlcmd - I've run similar commands without errors. Any ideas?

I'm posting the code for reference....

INSERT INTO CaseHistory
	(Region, EmployeeID, AsOfDate, Closed, Pending, Active, LateReport, AsOfWeek, EmpWk, YearWk)

-- All cases by region and employee when there is no BudgetID
select 
-- Region set to 'TBD' during insert, to be updated after INSERT
	'TBD',

-- CM (either the employee ID or the budget ID if a substitute is filling in on the case)
	case when (proj.budgetid is not null and exists (select 'X' from acm where proj.budgetid = acm.empid)) then proj.budgetid else ACM.EmpID end as CaseMgr, 

-- Record time stamp of the previous week's Sunday for AsOfDate
	GetDate()-(datepart("weekday",GetDate())+6)
 as AsOfDate, /*assume job runs on Sunday for previous week*/

-- Accumulate case counts for closed, pending, active, late status
	sum (case when proj.projectother3 like 'clos%' then 1 else 0 end) Closed,
	sum (case when proj.projectother3 like 'pend%' then 1 else 0 end) Pending,
	sum (case when left(proj.projectother3,4) not in ('clos','pend') then 1 else 0 end) Active,
	sum (case when left(proj.projectother3,1) in ('0','1')
		then 
			case when left(proj.projectother3,5) < Left(convert(varchar,Getdate()-4,10),5)
				/*compare to 4 days earlier to determine late, gives a grace period to allow for reports that weren't processed until Mon/Tue for previous week */
				then 1 else 0 end
			else 0 
		end) LateReport,

-- Store week as a value (NOTE: this may not be needed for reporting since YearWk contains this data)
	datepart("week",GetDate()
 -(datepart("weekday",GetDate()))

) as AsOfWeek,
	/*Using the week number of the beginning of the previous week since the job runs on Sunday of following week */

-- Build Primary Key field using the employeeID and YearWk fields concatenated
	(case when proj.budgetid is null then ACM.EmpID else proj.budgetid end)+ right(str(datepart("year",GetDate()-(datepart("weekday",GetDate()))),4),2) + '-' 
		+ left(convert(char,datepart("week",getdate()
-(datepart("weekday",GetDate()))
),1),2) as EmpWk,

-- Build YearWk to create unique time records for each week of each year, not just the week)
	right(str(datepart("year",GetDate()-(datepart("weekday",GetDate()))),4),2) + '-' 
		+ left(convert(char,datepart("week",getdate()
-(datepart("weekday",GetDate()))
),1),2) as YearWk

FROM ACM
	left outer join proj on ACM.EmpID = proj.employeeid
WHERE proj.projectstatus = 'Active' and proj.budgetid is null
GROUP BY /*ACM.Region, */ACM.EmpID, proj.budgetid
ORDER BY /*ACM.Region, */ACM.EmpID

Open in new window

0
Comment
Question by:Shannon Mollenhauer
3 Comments
 
LVL 10

Accepted Solution

by:
Humpdy earned 125 total points
ID: 34233767
try get rid of your quotes in your datepart

datepart(weekday,GetDate())
not
datepart("weekday",GetDate())
0
 
LVL 32

Assisted Solution

by:Erick37
Erick37 earned 125 total points
ID: 34233784
Do ont enclose week, year, weekday, etc. in quotes...

e.g.
datepart(week,getdate()...
0
 

Author Closing Comment

by:Shannon Mollenhauer
ID: 34234457
I'm splitting the points since you both posted at nearly the same time. Gee - I can't believe I couldn't find any answers like this with Google. Guess that's why I pay for EE every month! Thanks.
0

Featured Post

Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Incremental load example 2 52
Caste datetime 2 57
Can Unique column have more than one Null? 8 53
Email Notifications for SQL 2005 9 27
When writing XML code a very difficult part is when we like to remove all the elements or attributes from the XML that have no data. I would like to share a set of recursive MSSQL stored procedures that I have made to remove those elements from …
This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

786 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question