Solved

sql server stored procedure while loop

Posted on 2008-10-08
15
14,130 Views
Last Modified: 2008-10-08
Hi all

i have the following stored procedure but it doesnt return any value for me and seems to loop indefinately

ALTER PROCEDURE [dbo].[spGetRootId]
      @menuid int,
      @parentid int = NULL,
      @returnmenuid int = NULL,
      @initialmenuid int = NULL
AS
BEGIN
      SET NOCOUNT ON;
      SET @parentid = 1
      SET @initialmenuid = @menuid
      WHILE @parentid != 0
            BEGIN
                  SELECT @returnmenuid = menuId, @parentid = parentId FROM siteMenues WHERE menuId = @initialmenuid
                  --PRINT @returnmenuid
                  IF @parentid = 0
                        --PRINT @returnmenuid      
                        BREAK
                  ELSE
                        SET @initialmenuid = @returnmenuid
                        SET @parentid = @parentid
                        CONTINUE      
            END
      PRINT @returnmenuid
END

thanks in advance
0
Comment
Question by:andrew67
  • 7
  • 6
  • 2
15 Comments
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 22667609
please try this:
ALTER PROCEDURE [dbo].[spGetRootId]
      @menuid int,
      @parentid int = NULL,
      @returnmenuid int = NULL,
      @initialmenuid int = NULL
AS
BEGIN
      SET NOCOUNT ON;
      SET @parentid = 1
      SET @initialmenuid = @menuid
      WHILE @parentid != 0 AND @parentid IS NOT NULL
            BEGIN
                  SELECT @returnmenuid = menuId, @parentid = parentId FROM siteMenues WHERE menuId = @initialmenuid
                  --PRINT @returnmenuid
                  IF @parentid = 0
                        --PRINT @returnmenuid      
                        BREAK
                  ELSE
                  BEGIN
                        SET @initialmenuid = @returnmenuid
                        SET @parentid = @parentid
                        CONTINUE      
                  END
            END
      PRINT @returnmenuid
END

Open in new window

0
 
LVL 3

Author Comment

by:andrew67
ID: 22667683
Hi thanks for that

unfortunately it seems to loop infinitely and eventually throws the error

Timeout expired. the timeout period elapsed prior to completion of the operation or the server is not responding

thanks
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 22667689
well, let's "kill" the loop after 10 runs:
ALTER PROCEDURE [dbo].[spGetRootId]

      @menuid int,

      @parentid int = NULL,

      @returnmenuid int = NULL,

      @initialmenuid int = NULL

AS

BEGIN

      SET NOCOUNT ON;

DECLARE @run_control INT

SET @run_control = 0
 

      SET @parentid = 1

      SET @initialmenuid = @menuid

      WHILE @parentid != 0 AND @parentid IS NOT NULL AND @run_control < 10

            BEGIN

   SET @run_control = @run_control + 1

   PRINT @run_control
 

                  SELECT @returnmenuid = menuId, @parentid = parentId FROM siteMenues WHERE menuId = @initialmenuid

                  --PRINT @returnmenuid

                  IF @parentid = 0

                        --PRINT @returnmenuid      

                        BREAK

                  ELSE

                  BEGIN

                        SET @initialmenuid = @returnmenuid

                        SET @parentid = @parentid

                        CONTINUE      

                  END

            END

      PRINT @returnmenuid

END

Open in new window

0
 
LVL 3

Author Comment

by:andrew67
ID: 22667740
Hi it runs now but it still doesnt return any value to me

thanks

andrew
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 22667807
you have to uncomment the print statements you had, and look at the output...
0
 
LVL 3

Author Comment

by:andrew67
ID: 22667831
if i uncomment the first one nothing changes, if i uncomment the second one i get the following error

Msg 156, Level 15, State 1, Procedure spGetRootId, Line 29
Incorrect syntax near the keyword 'ELSE'.
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 22667867
yes, because a BEGIN END will be needed
ALTER PROCEDURE [dbo].[spGetRootId]

      @menuid int,

      @parentid int = NULL,

      @returnmenuid int = NULL,

      @initialmenuid int = NULL

AS

BEGIN

      SET NOCOUNT ON;

DECLARE @run_control INT

SET @run_control = 0

 

      SET @parentid = 1

      SET @initialmenuid = @menuid

      WHILE @parentid != 0 AND @parentid IS NOT NULL AND @run_control < 10

            BEGIN

   SET @run_control = @run_control + 1

   PRINT @run_control

 

                  SELECT @returnmenuid = menuId, @parentid = parentId 

                    FROM siteMenues 

                    WHERE menuId = @initialmenuid

                  PRINT @returnmenuid

                  IF @parentid = 0

                  BEGIN

                        PRINT @returnmenuid      

                        BREAK

                  END

                  ELSE

                  BEGIN

                        SET @initialmenuid = @returnmenuid

                        SET @parentid = @parentid

                        CONTINUE      

                  END

            END

      PRINT @returnmenuid

END

Open in new window

0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
LVL 3

Author Comment

by:andrew67
ID: 22667904
hi sorry but its still not returning any value, just telling me that the query has executed successfully

would it help if i gave you the table as well?
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 22667927
yes, the CREATE TABLE and the INSERT statements for some sample data would make it easy for me.
0
 
LVL 5

Expert Comment

by:Cvijo123
ID: 22668026
If you will use this SP alot i suggest u make new field in table to store full path to your item, so getting your root menu or any child menu would be faster and easier (of course putting index on that field would be good performance boost).

I can make u example when u past your table and data if u like.
0
 
LVL 3

Author Comment

by:andrew67
ID: 22668096
table script:

USE [db]

GO

/****** Object: Table [dbo].[siteMenues] Script Date: 10/08/2008 12:46:36 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[siteMenues](

[menuId] [int] IDENTITY(1,1) NOT NULL,

[parentId] [int] NOT NULL,

[titleText] [varchar](300) COLLATE Latin1_General_CI_AS NOT NULL,

[accessLevel] [int] NOT NULL,

[orderId] [int] NOT NULL,

[displayStatus] [int] NULL,

[emailLink] [int] NULL,

[site] [int] NULL CONSTRAINT [DF_siteMenues_site] DEFAULT (0)

) ON [PRIMARY]
 

GO

SET ANSI_PADDING OFF

Open in new window

0
 
LVL 3

Author Comment

by:andrew67
ID: 22668109
data part:

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (1,0,'What is ddd?',1,1,1,NULL,1)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (2,0,'Is ddd For you?',1,2,1,NULL,1)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (3,0,'Using ddd',1,3,1,NULL,1)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (101,0,'Features of ddd',1,2,1,NULL,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (102,0,'Safety of ddd',1,3,1,NULL,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (103,0,'Prescribing ddd',1,4,1,NULL,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (88,0,'What is ddd?',1,1,1,NULL,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (104,0,'Resources',1,5,1,NULL,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (106,1,'How Effective is ddd?',1,2,1,1,1)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (107,1,'Are There Any Site-Effects?',1,3,1,1,1)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (108,107,'test?',1,1,0,1,1)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (109,2,'What Are My Contraceptive Choices?',4,1,1,1,1)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (111,2,'What Do Other Women Say?',4,3,1,1,1)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (100,0,'My ddd',1,5,1,NULL,1)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (114,88,'How Does ddd Work?',1,1,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (115,114,'How to Use ddd',4,1,0,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (117,101,'Efficacy',1,1,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (120,101,'User Compliance',4,4,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (121,101,'Compare Products',4,5,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (122,102,'Adverse Events',1,1,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (123,102,'Tolerability',4,2,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (124,103,'Abbreviated Prescribing Information',1,1,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (110,2,'Talking to Your Doctor',4,2,1,1,1)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (116,88,'How to Use ddd',1,2,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (118,101,'Cycle Control',1,2,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (126,103,'Patient Suitability',4,3,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (127,103,'Counselling Women',4,4,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (128,103,'Switching to ddd',4,5,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (130,103,'Ongoing Prescribing',4,7,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (68,0,'Common Questions',1,4,1,1,1)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (112,3,'How Do You Insert ddd?',1,1,1,1,1)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (113,3,'How Do You Remove ddd?',1,2,1,1,1)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (119,101,'Withdrawal Bleed',1,3,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (125,103,'Questions Women May Ask',1,2,1,1,2)

INSERT INTO siteMenus (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site)

VALUES (129,103,'Storage',1,6,1,1,2)

Open in new window

0
 
LVL 142

Accepted Solution

by:
Guy Hengel [angelIII / a3] earned 50 total points
ID: 22668225
ok, here the updated procedure and usage:


CREATE PROCEDURE [dbo].[spGetRootId]

      @menuid int,

      @returnmenuid int = NULL OUTPUT

AS

BEGIN

SET NOCOUNT ON;

DECLARE @run_control INT

DECLARE @initialmenuid int 
 

SET @run_control = 0

 

SET @returnmenuid = @menuid
 

WHILE @menuid IS NOT NULL AND @menuid <> 0 AND @run_control < 10

BEGIN

   SELECT @returnmenuid = parentId 

     FROM siteMenus 

    WHERE menuId = @menuid

        

   IF @returnmenuid IS NULL OR @returnmenuid = 0

   BEGIN

     SET @returnmenuid = @menuid

     SET @menuid = NULL

   END 

   ELSE 

   BEGIN

     SET @menuid = @returnmenuid

   END

   SET  @run_control  =  @run_control + 1

END
 

END
 

GO
 

declare @menuid int

declare @returnmenuid int 

set @menuid = 129

exec [dbo].[spGetRootId] @menuid, @returnmenuid output

select @returnmenuid

Open in new window

0
 
LVL 5

Expert Comment

by:Cvijo123
ID: 22668400
as i said here is my example how woud i solve getting child's or parent's from some node.

here is code to make example data:

CREATE TABLE [siteMenus_test]
(
      [menuId] [int] NOT NULL,
      [parentId] [int] NOT NULL,
      [titleText] [varchar](300) COLLATE Latin1_General_CI_AS NOT NULL,
      [accessLevel] [int] NOT NULL,
      [orderId] [int] NOT NULL,
      [displayStatus] [int] NULL,
      [emailLink] [int] NULL,
      [site] [int] NULL DEFAULT (0),
                  [path] varchar(50) null
) ON [PRIMARY]




INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)              VALUES (1,0,'What is ddd?',1,1,1,NULL,1, '1#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (2,0,'Is ddd For you?',1,2,1,NULL,1, '2#' )
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (3,0,'Using ddd',1,3,1,NULL,1, '3#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (101,0,'Features of ddd',1,2,1,NULL,2, '101#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (102,0,'Safety of ddd',1,3,1,NULL,2, '102#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (103,0,'Prescribing ddd',1,4,1,NULL,2, '103#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (88,0,'What is ddd?',1,1,1,NULL,2, '88#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (104,0,'Resources',1,5,1,NULL,2, '104#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (106,1,'How Effective is ddd?',1,2,1,1,1, '1#106#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (107,1,'Are There Any Site-Effects?',1,3,1,1,1, '1#107#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (108,107,'test?',1,1,0,1,1, '1#107#108#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (109,2,'What Are My Contraceptive Choices?',4,1,1,1,1, '2#109#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (111,2,'What Do Other Women Say?',4,3,1,1,1, '2#111#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (100,0,'My ddd',1,5,1,NULL,1, '100#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (114,88,'How Does ddd Work?',1,1,1,1,2, '88#114#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (115,114,'How to Use ddd',4,1,0,1,2, '88#114#115#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (117,101,'Efficacy',1,1,1,1,2, '101#117#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (120,101,'User Compliance',4,4,1,1,2, '101#120#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (121,101,'Compare Products',4,5,1,1,2, '101#121#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (122,102,'Adverse Events',1,1,1,1,2, '102#122#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (123,102,'Tolerability',4,2,1,1,2, '102#123#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (124,103,'Abbreviated Prescribing Information',1,1,1,1,2, '103#123#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (110,2,'Talking to Your Doctor',4,2,1,1,1, '2#110#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (116,88,'How to Use ddd',1,2,1,1,2, '88#116#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (118,101,'Cycle Control',1,2,1,1,2, '101#118#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (126,103,'Patient Suitability',4,3,1,1,2, '103#126#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (127,103,'Counselling Women',4,4,1,1,2, '103#127#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (128,103,'Switching to ddd',4,5,1,1,2, '103#128#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (130,103,'Ongoing Prescribing',4,7,1,1,2, '103#130#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (68,0,'Common Questions',1,4,1,1,1, '68#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (112,3,'How Do You Insert ddd?',1,1,1,1,1, '3#112#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (113,3,'How Do You Remove ddd?',1,2,1,1,1, '3#113#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (119,101,'Withdrawal Bleed',1,3,1,1,2, '101#119#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (125,103,'Questions Women May Ask',1,2,1,1,2, '103#125#')
INSERT INTO siteMenus_test (menuId, parentId, titleText, accessLevel, orderId, displayStatus, emailLink, site, path)      VALUES (129,103,'Storage',1,6,1,1,2, '103#129#')


and here is code to get child's, parent's or top node, but keep in mind that when u add or edit some node u need to change path field too (u can make SQL function to do that):


declare @path varchar(100)
 

--------- GET ALL PARENTS FROM SELECTED MENUID ---------
 

Select @path = path from siteMenus_test where menuId = 108

Select * from siteMenus_test where  @path like path + '%' 
 

--------------------------------------------------------
 

--------- GET ALL CHILDS FROM SELECTED MENUID ---------
 

Select @path = path from siteMenus_test where menuId = 2

Select * from siteMenus_test where path like @path + '%'
 

--------------------------------------------------------
 
 

--------- GET FIRST MENU (NOD) FROM SELECTED MENUID ---------
 

Select @path = path from siteMenus_test where menuId = 108

Select top 1 * from siteMenus_test where  @path like path + '%' order by path
 

-------------------------------------------------------

Open in new window

0
 
LVL 3

Author Comment

by:andrew67
ID: 22668431
mega thanks
0

Featured Post

VMware Disaster Recovery and Data Protection

In this expert guide, you’ll learn about the components of a Modern Data Center. You will use cases for the value-added capabilities of Veeam®, including combining backup and replication for VMware disaster recovery and using replication for data center migration.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
SQL Query 34 79
VB6 ListBox Question 4 30
SQL Statement to Update Email Domain 2 19
SQL - insert empty rows into output results 11 0
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
The Delta outage: 650 cancelled flights, more than 1200 delayed flights, thousands of frustrated customers, tens of millions of dollars in damages – plus untold reputational damage to one of the world’s most trusted airlines. All due to a catastroph…
Via a live example, show how to shrink a transaction log file down to a reasonable size.
Viewers will learn how to use the SELECT statement in SQL to return specific rows and columns, with various degrees of sorting and limits in place.

932 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now