ms-sql은
님의 만든 테이블 및 저장프로시져 정보를
시스템 테이블인 sysobjects 테이블에 기록합니다.
(이 테이블은 님이 만드신 데이타 베이스안에 있습니다.)
테이블을 보면
필드가 name에 만든어진 테이블 이름이 있죠.
거기서 id 테이블의 고유 번호 입니다. ^^
만약 그테이블의 필드 정보를 볼려면
syscolumns 테이블을 id 로 조인하면 그테이블 필드 정보를
보실수 있습니다.
ex) 이 예제는 테이블이 존재하면 테이블을 드롭하고 다시 만드는 예제입니다.
이걸 저장 프로시저로 만들면 간단하겠죠..
if exists (select * from dbo.sysobjects where id = object_id(N'테이블명') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table 테이블명
GO
CREATE TABLE 테이블명 (
[item_code_id] [int] IDENTITY (1, 1) NOT NULL ,
................
) ON [PRIMARY]
GO
delphi 에서 function으로 처리하면....
// 이건 존재하면 true, 안하면 false
function table_info(tname : string) : boolean;
var i : integer;
begin
with query1 do begin
close;
sql.clear;
sql.add('select coalesce(count(*), 0) as info from dbo.sysobjects '+
' where id = object_id(N'''+tname+''') and '+
' OBJECTPROPERTY (id, N'IsUserTable') = 1');
open;
i := fields[0].asinteger
close;
end;
if i = 0 then result := false
else result := true;
end;
^^*
ms-sql은
님의 만든 테이블 및 저장프로시져 정보를
시스템 테이블인 sysobjects 테이블에 기록합니다.
(이 테이블은 님이 만드신 데이타 베이스안에 있습니다.)
테이블을 보면
필드가 name에 만든어진 테이블 이름이 있죠.
거기서 id 테이블의 고유 번호 입니다. ^^
만약 그테이블의 필드 정보를 볼려면
syscolumns 테이블을 id 로 조인하면 그테이블 필드 정보를
보실수 있습니다.
ex) 이 예제는 테이블이 존재하면 테이블을 드롭하고 다시 만드는 예제입니다.
이걸 저장 프로시저로 만들면 간단하겠죠..
if exists (select * from dbo.sysobjects where id = object_id(N'테이블명') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table 테이블명
GO
CREATE TABLE 테이블명 (
[item_code_id] [int] IDENTITY (1, 1) NOT NULL ,
................
) ON [PRIMARY]
GO
delphi 에서 function으로 처리하면....
// 이건 존재하면 true, 안하면 false
function table_info(tname : string) : boolean;
var i : integer;
begin
with query1 do begin
close;
sql.clear;
sql.add('select coalesce(count(*), 0) as info from dbo.sysobjects '+
' where id = object_id(N'''+tname+''') and '+
' OBJECTPROPERTY (id, N'IsUserTable') = 1');
open;
i := fields[0].asinteger
close;
end;
if i = 0 then result := false
else result := true;
end;
흐미.. 제가 정리하면서두 허접 하네요..^^ 걍 참고만 하시길..
델파이 부문은 실행해 보지 않아서....^^;