IF OBJECT_ID(N'STUDENT') IS NOT NULL DROP TABLE STUDENT GO 这是T-SQL语句,请详细解释一下

作者&投稿:左丘鸣 (若有异议请与网页底部的电邮联系)
这句sql是什么意思,能不能逐字解释啊if db_id(N'test') is not null drop database test go~

if db_id(N'test') is not null -- db_id(N'test') 根据名称获取数据库ID,
drop database test
go

如果数据库存在,则drop掉数据库。

-- 按照注释一步步执行 看效果--创建表IF OBJECT_ID('tstudent') > 0 DROP TABLE tstudentGO CREATE TABLE tstudent ( fstudentno VARCHAR(10) PRIMARY KEY , fname NVARCHAR(10), )IF OBJECT_ID('tScore') > 0 DROP TABLE tScoreCREATE TABLE tScore ( fstudentno VARCHAR(10) PRIMARY KEY , fscroe INT )GO--插入测试数据INSERT dbo.tstudent ( fstudentno, fname )VALUES ( '001', -- fstudentno - varchar(10) N'小张' -- fname - nvarchar(10) ) INSERT dbo.tScore ( fstudentno, fscroe )VALUES ( '001', -- fstudentno - varchar(10) 90 -- fscroe - int ) --查看插入效果SELECT *FROM dbo.tScoreSELECT *FROM dbo.tstudent--创建触发器if (object_id('tgr_DeleteByStudentNo', 'tr') is not null) drop trigger tgr_DeleteByStudentNo Go--创建一个删除的触发器CREATE trigger tgr_DeleteByStudentNo ON tstudentAFTER DELETEas DECLARE @strStudentNo VARCHAR(10) SELECT @strStudentNo = fstudentno FROM deleted DELETE FROM tScore WHERE fstudentno = @strStudentNoDELETE FROM tstudent WHERE fstudentno = '001' --查看删除效果SELECT *FROM dbo.tScoreSELECT *FROM dbo.tstudent

这条语句是在判断是否有 STUDENT 这张表,如果有的话就删除!OBJECT_ID() 其实是一个系统函数用于返回对象标识号,因为在SQL-Server 中 在一个数据库中不存在相同的表名,而且每个表名都进行了ID标识 ,所以可以用这个函数来判断是否有某个对象的存在。

这里的解释是,通过Sql系统表中的Object_ID判断系统中是否存在Student这个表,如果ID不为Null或者空的情况下,删除这个Student表,
其实建议你了解一下,Sql中的一些系统表,有一些是很有用的,如:
sysobjects 数据库中的对象名,
syscolnums 数据库中的所有列名,

如果系统中存在STUDENT 表 那么就把他删除。
OBJECT_ID 是个数据库的内置函数,检查是否有这个对象

一般不会去判断数据库是否存在,再创建,那需要系统权限!
1>
2> --Create a database
3> IF EXISTS(SELECT name FROM sys.databases
4> WHERE name = 'ProSSEAppsCh07')
5> DROP DATABASE ProSSEAppsCh07
6> GO
1>
2> CREATE DATABASE ProSSEAppsCh07
3> GO


丰南区13252612984: IF OBJECT - ID(N'STUDENT') IS NOT NULL DROP TABLE STUDENT GO 这是T - SQL语句,请详细解释一下
满兔博德: 这条语句是在判断是否有 STUDENT 这张表,如果有的话就删除!OBJECT_ID() 其实是一个系统函数用于返回对象标识号,因为在SQL-Server 中 在一个数据库中不存在相同的表名,而且每个表名都进行了ID标识 ,所以可以用这个函数来判断是否有某个对象的存在.

丰南区13252612984: 求几个SQL语句和存储过程写法 -
满兔博德: 1、查询表A 中是存在列名为id的列1 2 3 4IF COL_LENGTH('A', 'id') ISNOTNULLPRINT N'存在'ELSEPRINT N'不存在' 2、当前连接的数据库中是否存在表名为A 的表 1 2 3 4IF object_id(N'A',N'U') ISNOTNULLPRINT N'存在' ELSEPRINT ...

丰南区13252612984: IF OBJECT - ID(N'STUDENT') IS NOT NULL DROP TABLE STUDENT GO 这是T - SQL语句,IF OBJECT - ID(N'STUDENT') IS NOT NULLDROP TABLE ... -
满兔博德:[答案] 这条语句是在判断是否有 STUDENT 这张表,如果有的话就删除!OBJECT_ID() 其实是一个系统函数用于返回对象标识号,因为在SQL-Server 中 在一个数据库中不存在相同的表名,而且每个表名都进行了ID标识 ,所以可以用这个函数来判断是...

丰南区13252612984: sqlserver 怎样 不提示 invalid object name 刷新 -
满兔博德: 有这种提示表示当前服务器当前数据库不存在该对象 需要创建该对象才行 或者是删除报错 那么在删除前加判断 if object_id(N'报错的对象名')is not null

丰南区13252612984: 把判断数据库是否有这个函数的语句也给我发来吧,谢谢啦
满兔博德: IF OBJECT_ID (N'<schema_name, sysname, dbo>.<function_name, sysname, EmployeeByID>') IS NOT NULL DROP FUNCTION <schema_name, sysname, dbo>.<function_name, sysname, EmployeeByID>

丰南区13252612984: sql分组显示前面5个 -
满兔博德: IF Object_id(N'tempdb..#dx2') IS NOT NULLDROP TABLE #dx2IF Object_id(N'dx1') IS NOT NULLDROP TABLE dx1SELECT * INTO #dx2 FROM dx --复制出一个临时表 SELECT NULL 发送号码,NULL 发送时间,NULL 发送内容 INTO dx1...

丰南区13252612984: 把判断数据库是否有这个函数的语句也给我发来吧,谢谢啦 -
满兔博德: IF OBJECT_ID (N'.') IS NOT NULL DROP FUNCTION .

丰南区13252612984: sql 怎么求出 一个月 有几天 -
满兔博德: 具体方法如下:--1.删除测试用表 IF OBJECT_ID(N'Test', N'U') IS NOT NULL DROP TABLE Test--2.建立测试表,并填充测试数据 SELECT * INTO Test FROM( SELECT CONVERT(DATETIME, '2008-1-1', 120) AS dt UNION ALL SELECT '2008-1-...

丰南区13252612984: SQL判断临时表是否存在 -
满兔博德: 判断临时表是否存在Way 1if(exists(select name from tempdb..sysobjects where name like'%temptab%' and type='U')) drop table #temptabWay 2 if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..#tempcitys') ...

丰南区13252612984: sql server 如何多个表查询,我每个表里面格式都是一样的,有100多个表 -
满兔博德: 如果在同一个库,使用下而把方法:IF object_id(N'tempdb..##temp_abc')0 BEGIN DROP TABLE ##temp_abc END CREATE ##temp_abc --创建与要查询的表结构相同的临时表,因为在go之后还需要使用该临时表,因此用##型的.( a nvarchar(...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网