-1
我遇到了较旧的数据库创建脚本的问题。我想知道它是否与确定某些对象存在的方式有关。在SQL Server中检查表的存在的正确方法是什么?
对于表行是
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tablename]' AND type in (N'U'))
BEGIN
Create table...
END
这似乎不对,看着sys.objects中后,我不认为它会永远都在那里。这是一个错误?如果是的话,那么写一个更好的方法是什么?
是这样的脚本这样做有效吗? – SmashCode
你的问题中的查询也可以正常工作,但是你有一个'object_id'函数的缺失圆括号,除此之外它应该可以正常工作,但是它有点冗长的查询写法,我建议的方法代码少且清晰得多: ) –
M.Ali's是最常用的形式。 IF OBJECT_ID('dbo.TableName','U')IS NULL –