我得到一個錯誤信息說附近有語法錯誤sys.objects中「
com.microsoft.sqlserver.jdbc.SQLServerException:附近有語法錯誤 'SYS'。
而這通常意味着我輸入的SQL查詢是錯誤的或者我缺少語法。而且我很肯定,我使用這個SQL查詢是正確的:
public static Vector<Vector<String>> getKeys() throws SQLException {
Vector<Vector<String>> vs = new Vector<Vector<String>>();
Connection con = Dal2.getConnection();
Statement stm = con.createStatement();
ResultSet rSet;
String sqlString = "SELECT OBJECT_NAME(OBJECT_ID) AS NameofConstraint,"
+"SCHEMA_NAME(schema_id) AS SchemaName,"
+ "OBJECT_NAME(parent_object_id) AS TableName,"
+"type_desc AS ConstraintType"
+"FROM sys.objects"
+"WHERE type_desc IN ('FOREIGN_KEY_CONSTRAINT','PRIMARY_KEY_CONSTRAINT')";
try{
rSet = stm.executeQuery(sqlString);
while(rSet.next()){
Vector<String> v = new Vector<String>();
for(int i=1; i <= v.size(); i++){
System.out.println(rSet.getString(i) + "\n");
// v.add(rSet.getString(i));
}
}
}
catch(Exception e){
e.printStackTrace();
}
return vs;
正如你可以看到我想要打印出來的SQL時,我使用的方法的Java控制檯上的結果集。但我不斷收到語法錯誤。我試着在SQL Server中的SQL查詢和正常工作:
SELECT OBJECT_NAME(OBJECT_ID) AS NameofConstraint,
SCHEMA_NAME(schema_id) AS SchemaName,
OBJECT_NAME(parent_object_id) AS TableName,
type_desc AS ConstraintType
FROM sys.objects
WHERE type_desc IN ('FOREIGN_KEY_CONSTRAINT','PRIMARY_KEY_CONSTRAINT')
在'FROM'和'WHERE'之前插入空格。 – saka1029
另外,不要使用'矢量'。 – chrylis