执行存储过程后,将返回以下列:
- srno
- 名称
- 天
- 金额
- bkt1
- bkt2
但我想将这些列名更改为:
- srno
- 名称
- 天
- 金额
- col_name_i/p-from_user
- col_name_i/p-from_user
你能帮忙吗?
因为您没有提到版本,所以我假设您有SQL Server 2012+版本。您可以使用WITH RESULT SETS属性来更改输出列名
示例:
CREATE PROCEDURE SP_Test
AS
BEGIN
SELECT 1 AS 'ColA', 2 AS 'ColB'
END
现在,您可以使用WITH RESULT SETS属性来更改列名
EXEC SP_Test
EXEC SP_Test WITH RESULT SETS(
(New_Col1 INT,
NEW_Col2 INT))
如果您使用的是旧版本的SQL Server,那么您可以将存储过程结果集转储到临时表或表变量中,然后您可以将名称别名(来自上面的同一示例)
DECLARE @Mytest TABLE (New_Col1 INT, New_Col2 INT)
INSERT INTO @Mytest EXEC Sp_Test
SELECT * FROM @Mytest
在动态sql:中使用如下列别名
declare @q nvarchar(max)
set @q ='select bkt1 as ' + @ipfromuser +' from table1'
exec(@q)