我创建了一个存储过程,用于更新多个表中的患者名称。当我执行它,显示错误,如sql server 2000存储过程
服务器:消息170,15级,状态1,
1号线1号线:近 '=' 的语法不正确。
这是我的代码。如何恢复它?请帮我
create procedure uppatname @pid varchar(150),@pname varchar(150)
as begin
declare @i as integer
declare @i1 as integer
declare @ttnm as varchar(100)
declare @tblnam as varchar(100)
drop table tbname
SELECT IDENTITY(int, 1,1) AS RowNumber, table_name
INTO tbname
FROM information_schema.columns
WHERE column_name = 'pid'
AND table_catalog = 'hospital'
AND table_name NOT LIKE 'T%'
SET @i = (select count(*) from information_schema.columns
where column_name='pid' and table_catalog='hospital'
and table_name not like 'T%')
SET @i1 = 1
WHILE @i1 <= @i
BEGIN
SET @tblnam = (select table_name from tbname where rownumber = @i1)
SET @ttnm = ('select * from ' + @tblnam + 'where pid = ' + @pid)
EXEC (@ttnm)
SET @i1 = @i1 + 1
END
END
为什么患者姓名在多个表中?如果它在功能上依赖于'pid'? – 2011-05-09 11:57:56