2016-09-05 3 views
0

Я должен создать хранимую процедуру в базе данных (SQL Server)Создать хранимую процедуру SQL Server

string query = "CREATE PROCEDURE queryName AS BEGIN " + sqlCommand + " END"; 
    SqlConnection cnn; 
    SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder(); 
    //builder["Provider"] = provider; 
    builder["Server"] = @"Themis\DEV"; 

    builder["Integrated Security"] = "SSPI"; 
    string connection_string = builder.ConnectionString; 

    cnn = new SqlConnection(connection_string); 

    cnn.Open(); 


    SqlCommand sqlCmd = new SqlCommand(queryName, cnn); 
    sqlCmd.CommandText = query; 
    sqlCmd.Connection = cnn; 
    sqlCmd.CommandType = CommandType.Text; 
    sqlCmd.ExecuteNonQuery(); 

Но я получаю ErrorMessage

Неправильный синтаксис около ВНУТРЕННЕЙ

Процедура следующая:

UPDATE description 
     INNER JOIN description1 
       ON description.resid_ = description1.resid_ 
SET description.polish = [description1].[polish] 
WHERE (description1.polish <> '') 
AND (description1.polish <> ('-')); 
+0

Я хотел бы предложить вам проверить ваш SQL на сервере управления до создания его программно. Всегда легче диагностировать проблемы с кодом, если вы знаете, что ваш SQL действителен. –

+0

Помимо недействительного SQL, почему вы делаете 'JOIN' на' остаток_' в той же таблице? –

ответ

2

Это не допустимо Update с использованием Join синтаксиса в SQL SERVER. Попробуйте этот способ

UPDATE D 
SET D.polish = [D1].[polish] 
FROM description D 
     INNER JOIN description1 D1 
       ON D.resid_ = D1.resid_ 
WHERE D1.polish <> '' 
     AND D1.polish <> '-'; 

Где положение можно упростить с помощью NOT IN

Where D1.polish NOT IN ('','-') 
Смежные вопросы