2016-04-12 18 views
0

Ich weiß, dass in C# wir Variablen in einer Zeichenfolge verwenden können.String und Variablen in der SQL-Abfrage

Zum Beispiel:

int num = 3; 
string str = "hello, I have " + num + " apple"; 

Wie werden wir, dass in einer INSERT-Anweisung in einer SQL-Abfrage zu tun?

Sagen wir, ich habe 2 Spalten in meiner Tabelle und sie sind name und remarks, und ich möchte eine Insert-Anweisung in meine gespeicherte Prozedur schreiben.

Zum Beispiel:

Declare @emp_no int; 

Insert into employee (name, remarks) 
Values ('Joe', 'Employee's number' + @emp_no) 

Ich frage mich, wenn ich so etwas in meiner Anfrage tun?

+1

Ja. Du kannst es versuchen. –

+1

Sie können aber sicherstellen, dass der Wert Ihrer @emp_no –

+0

danke allen, die jetzt viel mehr Sinne machen – RedRocket

Antwort

3

In diesem Teil gibt es mehrere Mängel auf:

Declare @emp_no int; 
    Insert into employee (name, remarks) Values ('Joe', 'Employee's number' + @emp_no) 

Nacheinander ...

  • Sie deklarieren @emp_no als int aber kein Wert zugewiesen ist ... Wenn Sie verketten SQL Strings und dort ist einer von ihnen NULL, die ganze Zeichenfolge wird NULL sein ... Also besser verwenden DECLARE @emp_no INT=1 oder so etwas wie
  • Die einzelne Qoute in "Mitarbeiter-Nummer" wird b reak die Zeichenfolge, die Sie festlegen möchten. Innerhalb eines SQL-Strings müssen Sie die Qoutes verdoppeln.
  • in SQL Server - andere als in C# - Sie keinen String und einen int ohne Guss
  • Wenn es keinen Raum hinter dem Wort „number“ conactenate kann, die Zahl der Mitarbeiter nahe dem Wort sitzen ...

Sie könnte etwa so versuchen:

Declare @emp_no int=1; 
    Insert into employee (name, remarks) 
    Values ('Joe', 'Employee''s number ' + CAST(@emp_no AS VARCHAR(10))) 
Verwandte Themen