Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Thủ tục lưu trữ SQL Server chuyển đổi varchar thành int

Bạn có thể tận dụng thực tế là SQL Server 2008 hiện hỗ trợ các loại bảng. Bạn có thể xác định một loại bảng và ở phía .net xây dựng một DataTable và chuyển nó như một tham số cho thủ tục được lưu trữ của bạn. Về phía SP, tham số đó thuộc loại [bất kỳ loại bảng nào bạn đã tạo] Đây là một ví dụ.

TotalPositions = [Some List] //of CSV List
DataTable Positions = new DataTable(); //Create the Datatype
Positions.Columns.Add("PositionID", typeof(int)); //
foreach (string sPos in TotalPositions.Split(','))
Positions.Rows.Add(int.Parse(sPos)); 

Sau đó, bạn có thể Nối các Vị trí làm tham số cho quy trình đã lưu trữ của mình

SqlParameter Param = new SqlParameter();
Param.Value = Positions
Param.SqlDbType = SqlDbType.Structured;
Param.ParameterName = @Positions                    
command.Parameters.Add(Param);

Trong cơ sở dữ liệu của bạn, bạn phải xác định một loại bảng là

CREATE TYPE [dbo].[Positions] AS TABLE(
    [Position] int NULL,
)
GO

và trong thủ tục được lưu trữ của bạn, hãy thêm

@MyPositions Positions Readonly

Bây giờ bạn có thể xử lý @MyPositions dưới dạng một bảng trong thủ tục của bạn và so sánh với nó.



  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 - Việc chuyển đổi kiểu dữ liệu varchar thành kiểu dữ liệu datetime dẫn đến giá trị nằm ngoài phạm vi

  2. Số sau DateTime2 có dành cho mục đích nano giây không?

  3. Làm cách nào để bạn chỉ định một số cổng khác trong SQL Management Studio?

  4. Thủ tục lưu trữ để tập lệnh cho các đối tượng cơ sở dữ liệu vào tệp?

  5. Làm cách nào để di chuyển một bảng vào một lược đồ trong T-SQL