Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

saya memerlukan sp untuk memilih atau memperbarui tabel saya dan untuk itu saya harus memasukkan beberapa nilai untuk variabel tunggal bagaimana saya bisa melakukannya?

Pernahkah Anda berpikir untuk menggunakan variabel tabel untuk meneruskan data ke prosedur tersimpan. Contoh:

Penyiapan

CREATE TYPE EmpIdValuesType AS TABLE
  (                     
        [EmpID] [int]NOT NULL
  )

CREATE TABLE Employee
(
  EmpID INT,
  Name varchar(20)
 )

INSERT INTO Employee 
Values
 (1, 'test1'),
 (2, 'test2'),
 (3, 'test3'),
 (4, 'test4'),
 (5, 'test5'),
 (6, 'test6'),
 (7, 'test7');

Create Procedure usp_GetEmployees
(
  @TableVariable EmpIdValuesType READONLY
)
AS
  SELECT *
  FROM Employee
  INNER JOIN @TableVAriable TV
    ON Employee.EmpId = TV.EmpId

Sekarang Anda dapat menyisipkan baris ke dalam variabel tabel sementara bertipe EmpIdValuesType dan meneruskan variabel ke prosedur tersimpan:

Memanggil Prosedur Tersimpan

DECLARE @empIds AS EmpIdValuesType

INSERT INTO @empIds(EmpID) Values (1), (2), (5)

Exec usp_GetEmployees @empIds;

Dan inilah hasilnya:

SQLFiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memulihkan akses ke instance SQL Server tanpa memulai ulang

  2. SQL server mengisi tabel berdasarkan tabel lain dengan substring sebagai nama kolom

  3. Validasi data sebelum mengunggah melalui SSIS

  4. Cara Menghapus Pekerjaan Agen SQL Server di Azure Data Studio

  5. Unicode SQL Query W/ Parameter bukan N Prefix