求一个存储过程

liyongqiang 2003-10-09 02:35:24
求一个存储过程,要求把表名称和每个表中的主关键字作为参数,然后输出一个字符串。
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-10-09
  • 打赏
  • 举报
回复
楼主的意思不太明白.

下面的查询可以查询到数据库中所有的表及对应的主键

SELECT
表名=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
Wally_wu 2003-10-09
  • 打赏
  • 举报
回复
//表部分
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
gmlxf 2003-10-09
  • 打赏
  • 举报
回复
我看不懂是什么意思,可否详细点。
伍子V5 2003-10-09
  • 打赏
  • 举报
回复
你的意思不是很明确

参照

D. 使用 OUTPUT 参数
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

txlicenhe 2003-10-09
  • 打赏
  • 举报
回复
eg:
create procedure test @tablename varchar(20),@keyField varchar(20)
As
Exec('select top 1 '+@keyField + ' from '+@tablename)

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧