I am running an update statement in query analyzer to update a database with
data from another database on another server.
I am running into the error : Error: Contains more than the maximum number
of prefixes. Maximum is 3
How do I overcome this error. I am the admin on both servers.http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=44062
DishanF
*** Sent via Developersdex http://www.examnotes.net ***
Don't just participate in USENET...get rewarded for it!|||I was trying to do something similar by doing an update and "pushing" the da
ta across to a linked server with the following:
update ServerName.AAD.dbo.t_employee
set ServerName.AAD.dbo.t_employee.work_shift = wa.work_shift
from t_employee wa
where ServerName.AAD.dbo.t_employee.id = wa.id
and wa.id = '105'
I was also getting the following:
Server: Msg 117, Level 15, State 2, Line 4
The number name 'ServerName.AAD.dbo.t_employee' contains more than the maxim
um number of prefixes. The maximum is 3.
It's a simple, but not obvious, answer. Put the table you are updating in th
e FROM clause with an alias and update the alias, as follows:
update la
set la.work_shift = wa.work_shift
from ServerName.AAD.dbo.t_employee la, t_employee wa
where la.id = wa.id
and wa.id = '105'
You have to love simple answers. Finding them is the challenging part. :)sql
Showing posts with label maximum. Show all posts
Showing posts with label maximum. Show all posts
Thursday, March 29, 2012
Error: Contains more than the maximum number of prefixes. Maximum
I am running an update statement in query analyzer to update a database with
data from another database on another server.
I am running into the error : Error: Contains more than the maximum number
of prefixes. Maximum is 3
How do I overcome this error. I am the admin on both servers.
> I am running an update statement in query analyzer to update a database
with
> data from another database on another server.
> I am running into the error : Error: Contains more than the maximum number
> of prefixes. Maximum is 3
> How do I overcome this error. I am the admin on both servers.
Object names in SQL Server have 4 parts: server.database.owner.objectname
Therefore, you ca have only 3 prefixes. Check the names in your Update
query.
Dejan Sarka, SQL Server MVP
Associate Mentor
www.SolidQualityLearning.com
data from another database on another server.
I am running into the error : Error: Contains more than the maximum number
of prefixes. Maximum is 3
How do I overcome this error. I am the admin on both servers.
> I am running an update statement in query analyzer to update a database
with
> data from another database on another server.
> I am running into the error : Error: Contains more than the maximum number
> of prefixes. Maximum is 3
> How do I overcome this error. I am the admin on both servers.
Object names in SQL Server have 4 parts: server.database.owner.objectname
Therefore, you ca have only 3 prefixes. Check the names in your Update
query.
Dejan Sarka, SQL Server MVP
Associate Mentor
www.SolidQualityLearning.com
Friday, February 24, 2012
Error while updating INDEXES
I was updating few indexes in one of my database tables when I got this warning message:
"Warning! The maximum key length is 900 bytes. The index 'IX_cc_statusText' has maximum length of 1024 bytes. For some combination of large values, the insert/update operation will fail."
Can anyone help me out as to:
1. Why this warning was thrown?
2. What are the implications of the same?
3. How to rectify this?
Here is the script I was using to update the indexes:
CREATE INDEX [cc_programEnrollment14] ON [dbo].[cc_programEnrollment]([cc_company_uid]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_program_uid] ON [dbo].[cc_programEnrollment]([cc_program_uid]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_status_uid] ON [dbo].[cc_programEnrollment]([cc_status_uid]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_CompanyID] ON [dbo].[cc_programEnrollment]([cc_CompanyID]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_statusText] ON [dbo].[cc_programEnrollment]([cc_statusText]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_initiatedDate] ON [dbo].[cc_programEnrollment]([cc_initiatedDate]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_initiatedBy_uid] ON [dbo].[cc_programEnrollment]([cc_initiatedBy_uid]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_SponsorID] ON [dbo].[cc_programEnrollment]([cc_SponsorID]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_SponsorDistributor_uid] ON [dbo].[cc_programEnrollment]([cc_SponsorDistributor_uid]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_programEnrollment] ON [dbo].[cc_programEnrollment]([cc_isDealerEligible], [cc_uid]) ON [PRIMARY]
GO
Thanks in advance
DexterHey Dexy,
you're index creation is failing because your column cc_statusText is longer than 900 bytes. You should try and create your indexes on the smaller columns, as I'm quite positive larger columns will take a bit longer to look up in the index.
Have a look here...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/architec/8_ar_da_0ldf.asp
Regards,
-Kilka
"Warning! The maximum key length is 900 bytes. The index 'IX_cc_statusText' has maximum length of 1024 bytes. For some combination of large values, the insert/update operation will fail."
Can anyone help me out as to:
1. Why this warning was thrown?
2. What are the implications of the same?
3. How to rectify this?
Here is the script I was using to update the indexes:
CREATE INDEX [cc_programEnrollment14] ON [dbo].[cc_programEnrollment]([cc_company_uid]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_program_uid] ON [dbo].[cc_programEnrollment]([cc_program_uid]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_status_uid] ON [dbo].[cc_programEnrollment]([cc_status_uid]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_CompanyID] ON [dbo].[cc_programEnrollment]([cc_CompanyID]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_statusText] ON [dbo].[cc_programEnrollment]([cc_statusText]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_initiatedDate] ON [dbo].[cc_programEnrollment]([cc_initiatedDate]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_initiatedBy_uid] ON [dbo].[cc_programEnrollment]([cc_initiatedBy_uid]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_SponsorID] ON [dbo].[cc_programEnrollment]([cc_SponsorID]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_SponsorDistributor_uid] ON [dbo].[cc_programEnrollment]([cc_SponsorDistributor_uid]) ON [PRIMARY]
GO
CREATE INDEX [IX_cc_programEnrollment] ON [dbo].[cc_programEnrollment]([cc_isDealerEligible], [cc_uid]) ON [PRIMARY]
GO
Thanks in advance
DexterHey Dexy,
you're index creation is failing because your column cc_statusText is longer than 900 bytes. You should try and create your indexes on the smaller columns, as I'm quite positive larger columns will take a bit longer to look up in the index.
Have a look here...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/architec/8_ar_da_0ldf.asp
Regards,
-Kilka
Subscribe to:
Posts (Atom)