ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • mysql cusor multi values
    카테고리 없음 2019. 1. 14. 09:28



    BEGIN TRANSACTION
    
    declare @cnt int
    declare @test nvarchar(128)
    -- variable to hold table name
    declare @tableName nvarchar(255)
    declare @cmd nvarchar(500) 
    -- local means the cursor name is private to this code
    -- fast_forward enables some speed optimizations
    declare Tests cursor local fast_forward for
     SELECT COLUMN_NAME, TABLE_NAME
       FROM INFORMATION_SCHEMA.COLUMNS 
      WHERE COLUMN_NAME LIKE 'pct%' 
        AND TABLE_NAME LIKE 'TestData%'
    
    open Tests
    -- Instead of fetching twice, I rather set up no-exit loop
    while 1 = 1
    BEGIN
      -- And then fetch
      fetch next from Tests into @test, @tableName
      -- And then, if no row is fetched, exit the loop
      if @@fetch_status <> 0
      begin
         break
      end
      -- Quotename is needed if you ever use special characters
      -- in table/column names. Spaces, reserved words etc.
      -- Other changes add apostrophes at right places.
      set @cmd = N'exec sp_rename ''' 
               + quotename(@tableName) 
               + '.' 
               + quotename(@test) 
               + N''',''' 
               + RIGHT(@test,LEN(@test)-3) 
               + '_Pct''' 
               + N', ''column''' 
    
      print @cmd
    
      EXEC sp_executeSQL @cmd
    END
    
    close Tests 
    deallocate Tests
    
    ROLLBACK TRANSACTION
    --COMMIT TRANSACTION


Designed by Tistory.