我尝试使用此代码..
string tabExist = "IF EXIST ( SELECT [name] FROM sys.table WHERE [name]=" + combCustomerName.Text + "" + ")";
SqlCommand tabExistCmd = new SqlCommand(tabExist, con);
tabExistCmd.ExecuteNonQuery();
显示异常关键字'SELECT'附近的语法不正确。 关键字“table”附近的语法不正确。
帮我解决一下。
答案 0 :(得分:1)
试试这个
string tabExist = "IF EXIST ( SELECT * FROM sys.Tables WHERE TABLE_NAME =" + combCustomerName.Text +")";
SqlCommand tabExistCmd = new SqlCommand(tabExist, con);
tabExistCmd.ExecuteNonQuery();
答案 1 :(得分:0)
您可能只需要在查询中编写 name ,并且还需要使用参数而不是plaint文本连接。
答案 2 :(得分:0)
你想用这个:
IF OBJECT_ID(N'tablenamehere') IS NOT NULL [whatever else you want to do here]
答案 3 :(得分:0)
试试这个..
string tabExist = "IF EXIST ( SELECT count(*) FROM sys.Tables WHERE TABLE_NAME =" + combCustomerName.Text +")";
SqlCommand tabExistCmd = new SqlCommand(tabExist, con);
if((int)tabExistCmd.ExecuteScalar()>0)
{
//Table Exist
}
else
{
//Table does not exist
}
答案 4 :(得分:0)
谓词被称为EXISTS
,如果被称为sys.tables
,则会对您测试的表/视图进行测试,最后需要引用该名称,请尝试以下操作:
string tabExist = "IF EXISTS ( SELECT [name] FROM sys.tables WHERE [name] = '" + combCustomerName.Text + "')";
您的查询也不完整,因为它表明如果条件成立,您想要执行某些操作,但您从未说明要执行的操作。有效的查询将使用此表单:
IF EXISTS ( SELECT [name] FROM sys.tables WHERE [name]='Orders') SELECT 'TRUE' AS Status
如果表存在,这将返回字符串值TRUE
。
另外,你真的不应该对参数进行连接,而是在命令对象中使用占位符和参数。