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

Tidak dapat menjalankan prosedur tersimpan SQL Server

Anda tidak perlu menggunakan T-SQL dinamis pernyataan dalam hal ini. Salah satu caranya adalah dengan menggunakan sesuatu seperti ini:

DECLARE @TempXML XML = CONVERT(XML, '<t>' + REPLACE(@CategoriesIdString, ',', '</t><t>') + '</t>')

;WITH DataSource ([CategoryId]) AS
(
    SELECT T.c.value('.', 'VARCHAR(100)')
    FROM @TempXML.nodes('/t') AS T(c)
    WHERE LEN(T.c.value('.', 'VARCHAR(100)')) > 0
)
SELECT Item.Id
      ,Item.ModelId
      ,Item.ItemCode
      ,Item.CategoryId
      ,(SELECT TOP (1) Category.CategoryName FROM Category WHERE Category.Id = Item.CategoryId) AS CategoryName
FROM Item 
LEFT OUTER JOIN Category 
    ON Item.CategoryId = Category.Id
LEFT JOIN DataSource
    ON Item.CategoryId = DataSource.CategoryId
WHERE DataSource.CategoryId IS NOT NULL 
    OR @CategoriesIdString IS NULL

Idenya adalah untuk memfilter menurut @CategoriesIdString parameter jika NOT NULL menggunakan LEFT JOIN .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lokasi penyimpanan apa, SQL Server atau sistem file, yang akan menghasilkan kinerja yang lebih baik dalam menyimpan gambar tiff?

  2. Pengumpulan Data Otomatis tentang Tugas yang Selesai di MS SQL Server

  3. Menggunakan LIKE di sp_executesql

  4. Linq-to-SQL mengabaikan nilai default SQL Server

  5. 2 Cara untuk Melihat apakah Fitur Usang Masih Digunakan di Instance SQL Server