TSQL

Limiting permissions with “Execute as” when using dynamic SQL

When using dynamic SQL there is always the possibility that someone will inject SQL that does harm. They can put queries that can drop objects or can create sysadmin logins. Running the scripts as low permission users can reduce the potential harm. But that takes time to research and is easy to cut. You can

Limiting permissions with “Execute as” when using dynamic SQL Read More »

Getting metadata from query using sp_describe_first_result_set

One of the tasks that eats a lot of my ETL development time is documenting the views and procedures I write. I need to know where exactly the data is coming from. sp_describe_first_result_set provides a flag for outputting the source for many of the columns in a query. exec sys.sp_describe_first_result_set N’exec [Integration].[GetOrderUpdates] ”20100101”, ”20170122”’, null,

Getting metadata from query using sp_describe_first_result_set Read More »

Using a temporary table to handle sp_describe_first_result_set

In a previous post (Easing the Testing Stored Procedures with Temporary Tables) I introduced the sp_describe_first_result_set stored procedure. This procedure works like sp_executesql, except that it returns the columns that a query returns rather than the results of the query. But it has a problem. The column name is separated from the datatype and thus

Using a temporary table to handle sp_describe_first_result_set Read More »