How can I determine if a SQL Server stored procedure parameter has a default?

后端 未结 7 1858
青春惊慌失措
青春惊慌失措 2020-12-11 03:08

Is there a way to determine programmatically if a SQL Server stored procedure parameter has a default? (Bonus points if you can determine what the default is.) SqlCommandB

7条回答
  •  佛祖请我去吃肉
    2020-12-11 03:43

    This is the SMO answer in PowerShell:

    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | out-null
    
    $srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" "MyServer\MyInstance"
    $db = $srv.Databases["MyDatabase"];
    $proc = $db.StoredProcedures["MyStoredProcedure"]
    
    foreach($parameter in $proc.Parameters) {
      if ($parameter.DefaultValue){
         Write-Host "$proc ,  $parameter , $($parameter.DefaultValue)"
      }
      else{
         Write-Host "$proc ,  $parameter , No Default Value"
      }
     }
    

提交回复
热议问题