2012-04-09 8 views
0

を使用しての.sqlスクリプト(SYBASE)ファイルを実行するために、私はテーブルを作成します.SQL(SYBASE)ファイルを持っていますすなわち「Create_table_mytable.sql」どのようにCMD

しかし、テーブルを作成する前に、それは既存のテーブルのチェックと同じものを落とす。ここ

は、スクリプトがどのように見えるかされています -

setuser 'dbo' 
go 


    IF EXISTS (SELECT 1 FROM sysobjects o, sysusers u WHERE o.uid=u.uid AND o.name = 'mytable' AND u.name = 'dbo' AND o.type = 'U') 
    begin 
     print 'dropping mytable' 
     drop table mytable 
     print 'dropped mytable' 
    end 
go  
    IF NOT EXISTS (SELECT 1 FROM sysobjects o, sysusers u WHERE o.uid=u.uid AND o.name = 'mytable' AND u.name = 'dbo' AND o.type = 'U') 
    begin  
     create table mytable (
       id numeric(9,0)  IDENTITY , 
       description    varchar(50)  not null 
       ) 

       GRANT SELECT ON dbo.mytable TO my_user 

       GRANT INSERT ON dbo.mytable TO my_user 

       GRANT DELETE ON dbo.mytable TO my_user 
    end 
    go 


end 
go 

setuser 
go 

ここでCMDファイルの内容れる: - ここに

@ECHO ON 

ECHO ">> START << mytable.sql" >> %LOG% 
%SQL% -S %SERVER% -U %USER% -P %PWD% -D %DB% -i mytable.sql >> %LOG% 

@ECHO OFF 

は、ログファイルの内容である: -

">> START << mytable.sql" 
Msg 102, Level 15, State 1: 
Server 'myserver', Line 14: 
Incorrect syntax near 'go'. 
">>> SYBASE SCRIPT COMPLETE <<< " 

注:Sybase Inを使用して実行すると、同じスクリプトが正しく実行されます。 trective SQLまたはASE Toolsを使用します。

答えて

1

私は答えを得ました。ここで私はテーブルを落とした後に書くことができなかったものです: -

use db 
go 

setuser 'dbo' 
go 


IF EXISTS (SELECT 1 FROM sysobjects o, sysusers u WHERE o.uid=u.uid AND o.name = 'mytable' AND u.name = 'dbo' AND o.type = 'U') 
begin 
print 'dropping mytable' 
    drop table mytable 
    print 'dropped table - mytable' 
end 
go 

IF (@@error != 0) 
BEGIN 
    PRINT "Error CREATING table 'mytable'" 
    SELECT syb_quit() 
END 
go 


IF NOT EXISTS (SELECT 1 FROM sysobjects o, sysusers u WHERE o.uid=u.uid AND o.name = 'mytable' AND u.name = 'dbo' AND o.type = 'U') 
begin  
    create table mytable (
      id numeric(9,0)  IDENTITY , 
      description    varchar(50)  not null 
      ) 


      GRANT SELECT ON dbo.mytable TO my_user 

      GRANT INSERT ON dbo.mytable TO my_user 

      GRANT DELETE ON dbo.mytable TO my_user 

end 
go 

setuser 
go 
関連する問題