I have the following code:
Dim sqlQuery As String = "IF NOT EXISTS ( SELECT * FROM myTable WHERE columnId = @columnId AND sourceId = @sourceId AND value = @value ) "
sqlQuery += "BEGIN "
sqlQuery += "INSERT INTO myTable SELECT @columnId, @sourceId, @value, " & data & " FROM otherTable WHERE sourceId = @sourceId AND @query END"
Using cn As New SqlConnection(connectStr), _
cmd As New SqlCommand(sqlQuery, cn)
cmd.Parameters.Add("@columnId", Data.SqlDbType.Int).Value = columnId
cmd.Parameters.Add("@sourceId", Data.SqlDbType.Int).Value = sourceId
cmd.Parameters.Add("@value", Data.SqlDbType.NVarChar).Value = value
cmd.Parameters.Add("@query", Data.SqlDbType.NVarChar).Value = query
cn.Open()
cmd.ExecuteNonQuery()
End Using
All of the other parameterized queries work except for the @query. I get an exception that says "An expression of non-boolean type specified in a context where a condition is expected, near 'END'." I'm not sure what I'm doing wrong. Using SQL Server 2008 R2.