eg:
create procedure test @tablename varchar(20),@keyField varchar(20)
As
Exec('select top 1 '+@keyField + ' from '+@tablename)
create procedure test @tablename varchar(20),@keyField varchar(20)
As
Exec('select top 1 '+@keyField + ' from '+@tablename)
OUTPUT 参数允许外部过程、批处理或多条 Transact-SQL 语句访问在过程执行期间设置的某个值。下面的示例创建一个存储过程 (titles_sum),并使用一个可选的输入参数和一个输出参数。首先,创建过程:USE pubs
GO
IF EXISTS(SELECT name FROM sysobjects
WHERE name = 'titles_sum' AND type = 'P')
DROP PROCEDURE titles_sum
GO
USE pubs
GO
CREATE PROCEDURE titles_sum @@TITLE varchar(40) = '%', @@SUM money OUTPUT
AS
SELECT 'Title Name' = title
FROM titles
WHERE title LIKE @@TITLE
SELECT @@SUM = SUM(price)
FROM titles
WHERE title LIKE @@TITLE
GO
create table T_aa
(
UserID varchar(6),
UserName varchar(70),
Usertitle varchar(70),
constraint pk_aa primary key(UserID,UserName)
)
//存储过程部分
create procedure up_aa @vUserName(70) output
as
select @vUserName=UserName from T_aa where userid='1001'//执行存储过程部分
declare @username varchar(70)
exec up_aa @username output
select @username as Username
表名=d.name,
主键字段名=a.name
FROM syscolumns a
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
where exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
)))
order by a.id,a.colorder