是否可以始终触发创建语句而不是像检查它们一样
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'my_table_name'
在 SQL SERVER CE 和 C# 中。因为无论采用何种方法,总会触发一个查询。不是吗???
我正在使用事务来创建所有表。因此,我确定如果存在一张表,那么肯定会创建所有表。
因此,如果我使用相同的事务,那么事务将在第一个创建表语句时失败:但这是否具有良好的性能?
是否可以始终触发创建语句而不是像检查它们一样
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'my_table_name'
在 SQL SERVER CE 和 C# 中。因为无论采用何种方法,总会触发一个查询。不是吗???
我正在使用事务来创建所有表。因此,我确定如果存在一张表,那么肯定会创建所有表。
因此,如果我使用相同的事务,那么事务将在第一个创建表语句时失败:但这是否具有良好的性能?
检查表是否存在或总是触发创建语句
如果该表已存在于数据库中,则会出现异常。
您可以检查表是否存在,删除然后创建它,例如:
if OBJECT_ID('dbo.my_table_name', 'U') IS NOT NULL
DROP TABLE dbo.my_table_name;
--and then
CREATE TABLE ....
如果您的意思是尝试创建表并查找异常,那么不会。异常代价高昂,如果处理不当,可能会意外终止您的程序。
最佳做法是检查表是否存在。