sql >> Database teknologi >  >> RDS >> Sqlserver

'Dynamisk' lagret procedure

Jeg skal gætte på datatyper her, og jeg vil lade dig udfylde det ekstra fnug.

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. Generer rapport fra URL - SQL Server Reporting Services 2008

  2. Er forbindelsespooling et must-have i ODP.NET?

  3. Sådan fungerer MapReduce i Hadoop

  4. ClassCastException:java.math.BigInteger kan ikke castes til java.lang.Long på forbindelse til MySQL