IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[TB]') AND type in (N'U')) DROP TABLE [TB]
IF not EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[TB]') AND type in (N'U')) create table [TB]([tret] varchar(3)) 晕 反了
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tb]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) begin create table [dbo].[tb](id int,......) end
请问AND type in (N'U')) 是什么有意思
N'IsUserTable') = 1)
isUsertable 这个是什么
exec(' IF not EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'+@symname+') AND type in (N'table')) -- 删除表 drop table '+@symname+' create table '+@symname+' (symname varchar(20), disname varchar(20), odd float, disid int, symid int, ls int, hodd float, oj float )') 为什么还是提醒table错误呢
IF OBJECT_ID('TB','U') IS NOT NULL DROP TABLE TBXXXX
exec(' IF not EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'+@symname+') AND type in (N''table'')) -- 删除表 drop table '+@symname+' create table '+@symname+' (symname varchar(20), disname varchar(20), odd float, disid int, symid int, ls int, hodd float, oj float )')
IF OBJECT_ID('TB','U') IS NULL CREATE TB
Msg 207, Level 16, State 1, Line 1 列名 'N发热' 无效。 Msg 208, Level 16, State 1, Line 1 对象名 '发热' 无效。 参数传进去 发生错误 。没判断存在的时候 表是可以动态建的
exec(' IF not EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'+@symname+') AND type in (N''table'')) -- 删除表 drop table '+@symname+' create table '+@symname+' (symname varchar(20), disname varchar(20), odd float, disid int, symid int, ls int, hodd float, oj float )') 传参数 会产生上面的错误
好了 谢谢大家 。exec(' IF not EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''+@symname+'') AND type in (N''table'')) -- 删除表 drop table '+@symname+' create table '+@symname+' (symname varchar(20), disname varchar(20), odd float, disid int, symid int, ls int, hodd float, oj float )') 这个才是正确的
AND type in (N'U'))
DROP TABLE [TB]
AND type in (N'U'))
create table [TB]([tret] varchar(3))
晕 反了
begin
create table [dbo].[tb](id int,......)
end
是什么有意思
isUsertable 这个是什么
IF not EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'+@symname+')
AND type in (N'table'))
-- 删除表
drop table '+@symname+'
create table '+@symname+'
(symname varchar(20),
disname varchar(20),
odd float,
disid int,
symid int,
ls int,
hodd float,
oj float
)')
为什么还是提醒table错误呢
DROP TABLE TBXXXX
IF not EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'+@symname+')
AND type in (N''table''))
-- 删除表
drop table '+@symname+'
create table '+@symname+'
(symname varchar(20),
disname varchar(20),
odd float,
disid int,
symid int,
ls int,
hodd float,
oj float
)')
IF OBJECT_ID('TB','U') IS NULL
CREATE TB
列名 'N发热' 无效。
Msg 208, Level 16, State 1, Line 1
对象名 '发热' 无效。
参数传进去 发生错误 。没判断存在的时候
表是可以动态建的
IF not EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'+@symname+')
AND type in (N''table''))
-- 删除表
drop table '+@symname+'
create table '+@symname+'
(symname varchar(20),
disname varchar(20),
odd float,
disid int,
symid int,
ls int,
hodd float,
oj float
)') 传参数 会产生上面的错误
IF not EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''+@symname+'')
AND type in (N''table''))
-- 删除表
drop table '+@symname+'
create table '+@symname+'
(symname varchar(20),
disname varchar(20),
odd float,
disid int,
symid int,
ls int,
hodd float,
oj float
)') 这个才是正确的