Showing posts with label incorrect. Show all posts
Showing posts with label incorrect. Show all posts

Wednesday, March 21, 2012

Error in stored procedure

When I'm trying to execute my stored procedure I'm getting the following code Line 35: Incorrect syntax near'@.SQL'.

Here is my procedure. Could someone tell me what mistake I'm doing.

Alterprocedure [dbo].[USP_SearchUsersCustomers_New]

@.UserIDINT

,@.RepName VARCHAR(50)

,@.dlStatus VARCHAR(5)=''

as

Declare

@.Criteria VARCHAR(500)

,@.SQL VARCHAR(8000)

SELECT @.Criteria=''

SET NOCOUNTON

if(@.dlStatus<>'ALL'AND(LEN(@.dlStatus)>1))

BEGIN

if(@.dlStatus='ALA')

SET @.Criteria='AND dbo.tbl_Security_Users.IsActive=1'

else

SET @.Criteria='AND dbo.tbl_Security_Users.IsActive=0'

END

--If the user is an Admin, select from all users.

if(dbo.UDF_GetUsersRole(@.UserID)= 1)

BEGIN

@.SQL='SELECT U.UserID

--,U.RoleID

,ISNULL((Select TOP 1 R.RoleName From dbo.tbl_Security_UserRoles UR

INNER JOIN dbo.tbl_Security_Roles R ON R.RoleID = UR.RoleID

Where UR.UserID = U.UserID), 'Unassigned') as 'RoleName'

,U.UserName

,U.Name

,U.Email

,U.IsActive

,U.Phone

FROM dbo.tbl_Security_Users U

--INNER JOIN dbo.tbl_Security_Roles R ON U.RoleID = R.RoleID

WHERE U.NAME LIKE @.RepName

AND U.UserTypeID < 3'+ @.Criteria

END

In your dynamic sql string, you need to escape the single quote by using it twice, i.e.: 'RoleName' should be ''RoleName''.

Also, before you build this string. make sure you test out the actual query first.

|||

I tried it still I get the same error "Incorrect Syntax near @.SQL". The query works fine when I execute it alone.

Here is the code again.

if(dbo.UDF_GetUsersRole(@.UserID)= 1)

BEGIN

@.SQL='SELECT U.UserID

--,U.RoleID

,ISNULL((Select TOP 1 R.RoleName From dbo.tbl_Security_UserRoles UR

INNER JOIN dbo.tbl_Security_Roles R ON R.RoleID = UR.RoleID

Where UR.UserID = U.UserID), ''Unassigned'') as ''RoleName''

,U.UserName

,U.Name

,U.Email

,U.IsActive

,U.Phone

FROM dbo.tbl_Security_Users U

--INNER JOIN dbo.tbl_Security_Roles R ON U.RoleID = R.RoleID

WHERE U.NAME LIKE @.RepName

AND U.UserTypeID < 3'+ @.Criteria

END

|||

SET @.SQL = '-- code here'

|||

I did that. Now when I click compile and execute it doesn't show any error. But when I execute the stored procedure it shows an error "Must declare @.UserID". But it's already declared.

|||

You dont need to use dynamic SQL in your scenario. Try something like this with your regular SELECT statement:

ANDdbo.tbl_Security_Users.IsActive= (CASEWHEN@.dlStatus='ALL'THENdbo.tbl_Security_Users.IsActive

WHEN@.dlStatus='ALA'Then1ELSE0END )

|||

Thanks! It worked and I liked the simplicity of the code while achieving the desired task.

Error in sql 2000: Incorrect syntax near ')'.


I get this error:
Server: Msg 102, Level 15, State 1, Line 62
Incorrect syntax near ')'.
Here is the request that I put inside my cursor:

exec ('sp_grantdbaccess @.loginame=' + @.newLoginParam )
set @.sqlGrant='grant update on mosaikdb741.dbo.loginlistInput to ' + @.newLoginParam
EXEC (@.sqlGrant)

Is there any thing wrong?
thank you

Replace the [EXEC] with [PRINT] and examine the statement. I think you will then see the issue.|||

Would you be able to provide the value of @.newLoginParam that is causing the problem?

Chris

|||As I indicated earlier, if you were to PRINT and examine the value of @.sqlGrant, you would readily see that there 'may' be a problem with quotes.|||

exec ('sp_grantdbaccess @.loginame= ''' + @.newLoginParam + '''')

...but work only if you dont have ' into @.newLoginParam

My suggestion is to use sp_executesql with separate parameters settings.

Mauro

Error in sql 2000: Incorrect syntax near ')'.


I get this error:
Server: Msg 102, Level 15, State 1, Line 62
Incorrect syntax near ')'.
Here is the request that I put inside my cursor:

exec ('sp_grantdbaccess @.loginame=' + @.newLoginParam )
set @.sqlGrant='grant update on mosaikdb741.dbo.loginlistInput to ' + @.newLoginParam
EXEC (@.sqlGrant)

Is there any thing wrong?
thank you

Replace the [EXEC] with [PRINT] and examine the statement. I think you will then see the issue.|||

Would you be able to provide the value of @.newLoginParam that is causing the problem?

Chris

|||As I indicated earlier, if you were to PRINT and examine the value of @.sqlGrant, you would readily see that there 'may' be a problem with quotes.|||

exec ('sp_grantdbaccess @.loginame= ''' + @.newLoginParam + '''')

...but work only if you dont have ' into @.newLoginParam

My suggestion is to use sp_executesql with separate parameters settings.

Mauro

Monday, March 19, 2012

error in sp when using order by

CREATE PROCEDURE getC

AS
(
SELECT top 3 c FROM table1
order by c Desc

)
GO


and it gives me error "Incorrect syntax near keyword order", and secondly how will i get the result in a var like...

CREATE PROCEDURE getC

@.d char(6)
AS
(
SELECT @.d=top 1 c FROM table1
order by c Desc

)
GOYou can't use order by clause on an SP.

Paulo|||-- SQL Code Begins Here
-- exec test23
create proc test23
as

declare @.top as varchar(50)
declare @.top1 as varchar(50)
declare @.top2 as varchar(50)
declare @.top3 as varchar(50)
declare @.row_count as int

set @.row_count = 1

DECLARE top3_cursor CURSOR FOR

select top 3 author_code from lauthors
order by author_code desc

OPEN top3_cursor
FETCH NEXT FROM top3_cursor into @.top
-- Check @.@.FETCH_STATUS to see if there are any more rows to fetch.
WHILE @.@.FETCH_STATUS = 0
BEGIN
-- This is executed as long as the previous fetch succeeds.
if @.row_count = 1
begin
set @.top1 = @.top
set @.top = ''
end

if @.row_count = 2
begin
set @.top2 = @.top

set @.top = ''
end

if @.row_count = 3
begin
set @.top3 = @.top

set @.top = ''
end

set @.row_count = @.row_count + 1

FETCH NEXT FROM top3_cursor into @.top
END
CLOSE top3_cursor
DEALLOCATE top3_cursor

select @.top1 as top1, @.top2 as top2, @.top3 as top3

go

-- SQL Code Ends Here

Hope this is what you are looking for

Roshmi Choudhury|||I'd just use something like:CREATE PROCEDURE getC
@.d CHAR(6) OUTPUT
AS

SELECT @.d = Max(c)
FROM table1

RETURN
GO-PatP|||the problem is DESC field..
you can't use this word.. because is a reserved word!!!
rename field or use order by [DESC]

DESC is a reserved word for DESCENDING in order by clause..
ex. select * fro mauthors order by aut_id desc
orders in descending mode..

it's ok??|||this message it was not for this thread..
sorry =)))

Wednesday, March 7, 2012

Error in first run of the snapshot agent (Error: 170)

Hi All
I am getting the following error from the snapshot agent, while first
setting up transactional queued replication.
"Line 1: Incorrect syntax near '000'.
(Source: distribution (Data source); Error number: 170)
"
I have read the KB articles saying I should install SP3 and the problem will
go away. I have installed SP3 on both publisher/distributor & single test
subscriber, on specially prepared clean installations of SQL2000.
Here is the end of the detailed logfile produced by the repl agent:
"Inserted constraint creation command for article 'EventBookingstatus' into
the distribution database.
*** [Publication:'I-junction_Support-Central_Live'] Total snapshot
generation time excluding publication setup: 439271 (ms) ***
SourceTypeId = 5
SourceName = distribution
ErrorCode = 170
ErrorText = Line 1: Incorrect syntax near '000'.
Line 1: Incorrect syntax near '000'.
Disconnecting from Publisher 'IJUNC-LUDD'
"
What should I try next?
I am happy to provide the sql to create the db & the replication if it helps.
Many thanks
Vaughn
Hi Vaughn,
I have the vague suspicion that you are hitting the issue described in
KB834453 (just search on microsoft.com) which is fixed as a QFE after sp3.
If you can include more of the output from the snapshot agent or a trace of
the failing command then I can tell with greater certainty. In any case, I
think it is worthwhile for you to contact Microsoft support to try out the
fix.
-Raymond
This posting is provided "as is" with no warranties and confers no rights.
"Vaughn Cleminson" <Vaughn Cleminson@.discussions.microsoft.com> wrote in
message news:EC3169EF-6EC5-4BF1-B43C-C51403DAA06C@.microsoft.com...
> Hi All
> I am getting the following error from the snapshot agent, while first
> setting up transactional queued replication.
> "Line 1: Incorrect syntax near '000'.
> (Source: distribution (Data source); Error number: 170)
> "
> I have read the KB articles saying I should install SP3 and the problem
will
> go away. I have installed SP3 on both publisher/distributor & single test
> subscriber, on specially prepared clean installations of SQL2000.
> Here is the end of the detailed logfile produced by the repl agent:
> "Inserted constraint creation command for article 'EventBookingstatus'
into
> the distribution database.
> *** [Publication:'I-junction_Support-Central_Live'] Total snapshot
> generation time excluding publication setup: 439271 (ms) ***
> SourceTypeId = 5
> SourceName = distribution
> ErrorCode = 170
> ErrorText = Line 1: Incorrect syntax near '000'.
> Line 1: Incorrect syntax near '000'.
> Disconnecting from Publisher 'IJUNC-LUDD'
> "
> What should I try next?
> I am happy to provide the sql to create the db & the replication if it
helps.
> Many thanks
> Vaughn
|||Hi
Thanks for the reply.
I'll check the db for reserved words and silly characters.
How to I trace the failing command, please?
The full snapshot logfile is too long to post.
Is there a specific bit that will help?
Vaughn
|||Hi Riaymond.
The KB you suggest says:
SYMPTOMS
When the Snapshot Agent runs after you make schema changes to the underlying
tables of a publication, the Snapshot Agent may fail.
This is the first time I am running the agent, after creating the
publication. I haven't changed the tables since making the publication and
setting up the areticles.
Does the KB still apply?
Vaughn
|||Hi Vaughn,
You can definitely see the error even if this is the first time you run the
snapshot agent. Making schema\publication changes simply gives the random
flavors described in the KB. To tack down the problematic command, you
should start a SQL Profiler trace with the statement starting\batch
startng\RPC starting events enabled before running the snapshot agent. The
problematic command should starts with sp_MSadd_repl_error if my guess is
correct but you may need to back track a few entries in the profiler trace
before you can find it.
-Raymond
This posting is provided "as is" with no warranties and confers no rights.
"Vaughn Cleminson" <VaughnCleminson@.discussions.microsoft.com> wrote in
message news:D8229CB1-A616-4ABB-BF09-787A280C413C@.microsoft.com...
> Hi Riaymond.
> The KB you suggest says:
> SYMPTOMS
> When the Snapshot Agent runs after you make schema changes to the
underlying
> tables of a publication, the Snapshot Agent may fail.
> This is the first time I am running the agent, after creating the
> publication. I haven't changed the tables since making the publication and
> setting up the areticles.
> Does the KB still apply?
> Vaughn
|||Hi Raymond.
Man, you clearly know your stuff.
Here is the error line from profiler, and the error reported:
What do you suggest I try next?
line:
exec sp_MSadd_repl_command @.publisher_id = 0, @.publisher_db =
N'I-junction_Support-Central_Live', @.type = -2147483639, @.article_id = 63,
@.xact_id = 0x000000000000, @.xact_seqno = 0x00001c490000012802b900000001,
@.command_id = 1111, @.partial_command = 0, @.command =
0x6900660020002800400040006d006900630072006f007300 6f0066007400760065007200730069006f006e0020003e003d 00200030007800300038003000300030003200430030002900 200062006500670069006e0020006500780065006300200073 0070005f00610064006400730079006e006300740072006900 67006
70065007200730020004e00270045006d00610069006c00520 075006c006500450078006500630075007400610062006c006 50027002c0020004e0027006e0075006c006c0027002c00200 04e00270049004a0055004e0043002d004c005500440044002 7002c0020004e00270049002d006a0075006e0063007400690 06f00
6e005f0053007500700070006f00720074002d00430065006e 007400720061006c005f004c0069007600650027002c002000 4e00270049002d006a0075006e006300740069006f006e005f 0053007500700070006f00720074002d00430065006e007400 720061006c005f004c0069007600650027002c0020004e0027 00730
070005f004d005300730079006e0063005f0069006e0073005 f0045006d00610069006c00520075006c00650045007800650 0630075007400610062006c0065005f00310027002c0020004 e002700730070005f004d005300730079006e0063005f00750 0700064005f0045006d00610069006c00520075006c0065004 50078
006500630075007400610062006c0065005f00310027002c00 20004e002700730070005f004d005300730079006e0063005f 00640065006c005f0045006d00610069006c00520075006c00 6500450078006500630075007400610062006c0065005f0031 0027002c0020004e002700730070005f004d00530063006600 74005
f0049002d006a0075006e006300740069006f006e005f00530 07500700070006f00720074002d00430065006e00740072006 1006c005f004c006900760065005f0045006d00610069006c0 0520075006c006500450078006500630075007400610062006 c00650027002c0020004e002700640062006f0027002c00200 04e00
27005000720069006d006100720079004b006500790027002c 0020004e0027006e0075006c006c0027002c0020004e002700 6e0075006c006c0027002c00200030007800300031002c0020 0031002c0031002c004e00270049004a0055004e0043002d00 4c0055004400440027002c0020003200200065006e00640020 00
e006?????6?6
error:
exec sp_MSadd_snapshot_history @.agent_id = 5, @.runstatus = 6, @.comments =
N'Line 1: Incorrect syntax near ''e006''.', @.delivered_transactions = 1,
@.delivered_commands = 0, @.log_error = 1,
|||Hi Vaughn,
The only thing to do now is to contact Microsoft Product\Customer Support
with the information below and ask for the QFE fix described in KB834453;
there should be no charge for this. Or, you can try to work around the
problem by using either a longer (or shorter) article name for article id#63
(just drop and recreate the article).
-Raymond
This posting is provided "as is" with no warranties and confers no rights.
"Vaughn Cleminson" <VaughnCleminson@.discussions.microsoft.com> wrote in
message news:549EC277-0623-4DC5-992F-8780FA613ADF@.microsoft.com...
> Hi Raymond.
> Man, you clearly know your stuff.
> Here is the error line from profiler, and the error reported:
> What do you suggest I try next?
> line:
> exec sp_MSadd_repl_command @.publisher_id = 0, @.publisher_db =
> N'I-junction_Support-Central_Live', @.type = -2147483639, @.article_id = 63,
> @.xact_id = 0x000000000000, @.xact_seqno = 0x00001c490000012802b900000001,
> @.command_id = 1111, @.partial_command = 0, @.command =
>
0x6900660020002800400040006d006900630072006f007300 6f006600740076006500720073
0069006f006e0020003e003d00200030007800300038003000 30003000320043003000290020
0062006500670069006e002000650078006500630020007300 70005f00610064006400730079
006e0063007400720069006700670065007200730020004e00 270045006d00610069006c0052
0075006c006500450078006500630075007400610062006c00 650027002c0020004e0027006e
0075006c006c0027002c0020004e00270049004a0055004e00 43002d004c0055004400440027
002c0020004e00270049002d006a0075006e00630074006900 6f006e005f0053007500700070
006f00720074002d00430065006e007400720061006c005f00 4c0069007600650027002c0020
004e00270049002d006a0075006e006300740069006f006e00 5f0053007500700070006f0072
0074002d00430065006e007400720061006c005f004c006900 7600650027002c0020004e0027
00730070005f004d005300730079006e0063005f0069006e00 73005f0045006d00610069006c
00520075006c00650045007800650063007500740061006200 6c0065005f00310027002c0020
004e002700730070005f004d005300730079006e0063005f00 7500700064005f0045006d0061
0069006c00520075006c006500450078006500630075007400 610062006c0065005f00310027
002c0020004e002700730070005f004d005300730079006e00 63005f00640065006c005f0045
006d00610069006c00520075006c0065004500780065006300 75007400610062006c0065005f
00310027002c0020004e002700730070005f004d0053006300 660074005f0049002d006a0075
006e006300740069006f006e005f0053007500700070006f00 720074002d00430065006e0074
00720061006c005f004c006900760065005f0045006d006100 69006c00520075006c00650045
0078006500630075007400610062006c00650027002c002000 4e002700640062006f0027002c
0020004e0027005000720069006d006100720079004b006500 790027002c0020004e0027006e
0075006c006c0027002c0020004e0027006e0075006c006c00 27002c00200030007800300031
002c00200031002c0031002c004e00270049004a0055004e00 43002d004c0055004400440027
002c0020003200200065006e0064002000
> e006?Y6Y6
> error:
> exec sp_MSadd_snapshot_history @.agent_id = 5, @.runstatus = 6, @.comments =
> N'Line 1: Incorrect syntax near ''e006''.', @.delivered_transactions = 1,
> @.delivered_commands = 0, @.log_error = 1,