目前使用MS SQL2000,如果这有任何区别。
有没有比下面的方法更好的方法能够以编程方式访问表格?
declare @tableName as varchar(50)
declare @sql varchar(4000)
set @tableName = 'User'
print @tableName
If EXISTS(
select TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE table_name = ''+@TableName+''
)
BEGIN
set @sql = 'select * from [' + @tableName + ']'
exec(@sql)
end
基本上我试图为CRUD操作创建一个简单的Mapping工具,这样我每个操作只需要一个Sproc,并且我可以传入我的参数化对象,一个表名,让数据库完成剩下的工作。这纯粹是为了我自己的个人教育,因此我没有使用既定的框架,所以如果我的想法或上面的代码有任何重大问题,我也会很感激。
由于
答案 0 :(得分:0)
这是按照初始代码创建SP的完整示例:
CREATE PROCEDURE dbo.CustomSelect (@tableName as varchar(50))
AS
SET NOCOUNT ON
DECLARE @sql varchar(4000)
If EXISTS(
select TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE table_name = @tableName
)
BEGIN
set @sql = 'select 1 as Found, * from [' + @tableName + ']'
exec(@sql)
END
ELSE
BEGIN
select 0 as Found
END
此SP 始终返回记录集,因此您可以检查the value of the field FOUND
以了解该表是否存在
<强>用法:强>
EXEC CustomSelect 'User'
希望有所帮助