--定义存储过程. Create PROCEDURE Usp_Static @tableName nvarchar(50), @groupCol nvarchar(50), --分组字段. @staticCol nvarchar(50), --统计字段. @showCol nvarchar(50), --表头字段. @opera nvarchar(50) --聚会函数. AS declare @SQL nvarchar(max), @proColumn nvarchar(50) --存储游标执行的列. execute ('Declare curCol Cursor for select distinct '+@showCol+' from '+@tableName+' for read only') --游标.
一,对于含有 "表名","字段"等的拼接,则需要通过字符串直接拼接(SQL中只支持单引号,表示字符串常量):
ALTER PROCEDURE USP_QueryT_AddressBookByField @FieldName nvarchar(20), --字段名. @FieldVal nvarchar(50) --字段对应的值. AS SET NOCOUNT ON declare @query nvarchar(max) set @query = 'select [FId] as [编号],[FName] as [姓名],[FSex] as [性别],[FPhone] as [电话号码],[Fqq] as [QQ], [FWordPhone] as [国际电话号码],[FEMail] as [EMail],[FHandSet] as [手机号] from [T_AddressBook] where '+@FieldName+'='''+@FieldVal+''' order by [FId]' exec(@query)