Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Enhancement actual select to update all rows
Message
 
 
To
03/01/2013 09:58:06
General information
Forum:
Microsoft SQL Server
Category:
SQL syntax
Environment versions
SQL Server:
SQL Server 2008
Application:
Web
Miscellaneous
Thread ID:
01561223
Message ID:
01561255
Views:
41
>The following seems to work:
>
>
>UPDATE Menu2 SET Count=Temp.RecordCount FROM Menu AS Menu2 JOIN (SELECT Menu.Numero,COUNT(*) AS RecordCount
>FROM Menu
>INNER JOIN MenuEntity ON Menu.Numero=MenuEntity.NoMenu
>INNER JOIN MenuPrivilege ON Menu.Numero=MenuPrivilege.NoMenu
>INNER JOIN MenuRole ON Menu.Numero=MenuRole.NoMenu
>INNER JOIN DBUsers ON MenuEntity.NoEntity=DBUsers.NoEntity AND MenuPrivilege.NoType=DBUsers.NoType AND MenuRole.NoRole=DBUsers.NoRole
>WHERE Menu.Numero NOT IN (SELECT Menu.Numero FROM MenuPrivilegeExceptionCase
>INNER JOIN Menu ON MenuPrivilegeExceptionCase.NoMenu=Menu.Numero
>WHERE MenuPrivilegeExceptionCase.NoMember=DBUsers.AI)
>GROUP BY Menu.Numero
>UNION
>SELECT Menu.Numero,COUNT(*) AS RecordCount
>FROM Menu
>INNER JOIN MenuPrivilegeExceptionCase ON Menu.Numero=MenuPrivilegeExceptionCase.NoMenu AND
>MenuPrivilegeExceptionCase.Enabled=1
>INNER JOIN MenuEntity ON Menu.Numero=MenuEntity.NoMenu
>INNER JOIN DBUsers ON MenuEntity.NoEntity=DBUsers.NoEntity
>WHERE MenuPrivilegeExceptionCase.NoMember=DBUsers.AI
>GROUP BY Menu.Numero) Temp ON Temp.Numero=Menu2.Numero
>
Change UNION to UNION ALL and if you're using SQL 2008 or up I suggest to switch to MERGE syntax instead of proprietary UPDATE-SQL.
If it's not broken, fix it until it is.


My Blog
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform