Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Różnica między dodawaniem parametrów do procedury składowanej w SQL Server?

Oto kilka wyjaśnień:

różnica między poleceniem Add i AddWithValue

Dim cmd as new SqlCommand("SELECT * FROM MyTable WHERE MyDate>@TheDate",conn)
cmd.Parameters.Add("@TheDate",SqlDbType.DateTime).Value="2/1/2007"

w porównaniu z

cmd.Parameters.AddWithValue("@TheDate","2/1/2007")

„Add wymusza konwersję od ciągu do daty, gdy przechodzi do parametru. AddWithValue po prostu przekaże ciąg do SQL Server.

Edytuj :

przykład, aby uzyskać parametr wyjściowy:

C#

cmd.Parameters.Add(new SqlParameter("@TheNewId", SqlDbType.Int, int.MaxValue));
cmd.Parameters("@TheNewId").Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
int theNewID = (int)cmd.Parameters("@TheNewId").Value;

VB.Net

cmd.Parameters.Add(New SqlParameter("@TheNewId", SqlDbType.Int, Int32.MaxValue))
cmd.Parameters("@TheNewId").Direction = ParameterDirection.Output
cmd.ExecuteNonQuery()
Dim theNewID As Int32 = DirectCast(cmd.Parameters("@TheNewId").Value, Int32)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008 — jak przekonwertować datetime GMT(UTC) na lokalną datetime?

  2. Nowe funkcje w SQL Server 2017 (aparat bazy danych)

  3. Użyć liczby zmiennoprzecinkowej lub dziesiętnej dla kwoty w dolarach w aplikacji księgowej?

  4. Ile razy dany znak pojawia się w ciągu znaków

  5. Dziennik transakcji dla bazy danych jest pełny