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

„Dynamiczna” procedura składowana

Muszę tutaj zgadywać typy danych, a pozwolę ci uzupełnić dodatkowy puch.

DECLARE @sql NVARCHAR(MAX) = N'SELECT ... 
  FROM dbo.XML_TEST_SET_OVERVIEW -- always use schema prefix
  WHERE ENVId = @MyENVId'

    + CASE WHEN @MyUId IS NOT NULL THEN 
           N' AND UId = @MyUId' ELSE '' END
    + CASE WHEN @MyMTId IS NOT NULL THEN 
           N' AND MTId = @MyMTId' ELSE '' END
    + CASE WHEN @MyTestSetName IS NOT NULL THEN 
           N' AND TestSetName = @MyTestSetName' ELSE '' END 
      ...
    + CASE WHEN @MyTransactionSeqNo IS NOT NULL THEN
           N' AND TransactionSeqNo = @MyTransactionSeqNo' ELSE '' END

    + N' ORDER BY ENVId, UId, ...;';

EXEC sp_executesql @sql, 
    N'@MyENVId INT, @MyUId INT, @MyMTId INT, 
      @MyTestSetName NVARCHAR(32), ... , @MyTransactionSeqNo INT',
    @MyENVId, @MyUId, @MyMTId, @MyTestSetName, ... , @MyTransactioNSeqNo;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak łączyć zmienne w ciągi SQL

  2. TransactionScopes .NET i SQL 2005 Lightweight Transaction Manager — wiele połączeń o tym samym identyfikatorze SPID?

  3. Tworzenie procedury składowanej za pomocą C#

  4. Najważniejsze funkcje narzędzia do monitorowania SQL Server

  5. Jak podzielić pliki CSV z jednej kolumny na wiersze w nowej tabeli w MSSQL 2008 R2?