在SQL Server数据库中创建列或表之前,我想检查是否存在所需的表和/或列.
到目前为止,我已经四处寻找并找到了两种方法.
SqlCommand.ExecuteScalar()方法并捕获异常以确定表/列是否存在,这对我来说是一个解决方案但不是一个完美的解决方案.是否有另一种方法来检查SQL Server中是否存在表/列?
要在创建架构之前检查架构是否存在,请执行以下操作:
检查列是否存在; 你使用IF NOT EXISTS然后把你的实际查询放在其中.
IF NOT EXISTS(SELECT * FROM sys.columns
WHERE [name] = N'columnName' AND [object_id] = OBJECT_ID(N'tableName'))
BEGIN
ALTER TABLE ADD COLUMN MYCOLUMN
END
Run Code Online (Sandbox Code Playgroud)
对于表,查询有点类似:
IF (NOT EXISTS (SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'TheSchema'
AND TABLE_NAME = 'TheTable'))
BEGIN
CREATE TABLE MYTABLE
END
Run Code Online (Sandbox Code Playgroud)