帮我看下:
select @keys=column_name from (exec('sp_pkeys '+ @table1))
这个句子该怎么写吗?
select @keys=column_name from (exec('sp_pkeys '+ @table1))
这个句子该怎么写吗?
解决方案 »
- 如何锁定当先操作界面
- 请教从VB转DELPHI的同志
- 郁闷, 昨晚被小偷光顾, 可怜的两部手机与其中的资料, 个人隐私也全部暴光.
- 用TOraStoredProc如何调用Oracle中的函数(function),如何设置参数,本人初学,请大虾讲详细点,举个例子
- 怎么判断InputBox对话框的yes按钮和Cannel按钮呀
- 高手请进!!!超难!!!!!!!
- DOS下用C语言怎么访问后台SQL Server??答出来还有分加!!
- 200分提问,有关新控件中图片的显示问题
- CBX RIA框架:属于Delphi的RIA/SmartClient框架
- 如何创建表结构?
- 帮忙看下sql 语句的问题,谢谢了!(重新开贴加分)
- 各位有什么好的控件或其他方法实现此算法
CREATE PROCEDURE NewTable(@table1 varchar(50),@table2 varchar(50))
AS
begin
declare @sqlstr varchar(500)
declare @keys varhcar(50)
select @keys=column_name from (exec('sp_pkeys '+ @table1))
@sqlstr = ' if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].['+@table2+']'') and OBJECTPROPERTY(id, N''IsUserTable'') = 1)'+
' drop table [dbo].['+@table2+']'+
' GO ' +
' select * into '+@table2+ ' from ' + @table1 +
' GO ' +
' ALTER TABLE ['+@table2+'] ADD ' +
' CONSTRAINT [PK_'+@table2+'] PRIMARY KEY CLUSTERED (['+@keys+']) ON [PRIMARY] ' +
' GO '
print @sqlstr
exec(@sqlstr)
end
set @tablename1='sp_pkeys in_stock'
insert into t exec(@tablename1)
先建一个t表来保存sp_pkeys执行后的结果,这个表结构可以根据 exec sp_pkeys 表名来建。
然后在存储过程中调用这个中间表来实现,你试一下,我测了一下
上面的执行结果:
waredb dbo In_Stock instock_id 1 PK_In_Stock