oracle元数据查询存储过程源表,从SQL Server存储过程中的另一个数据库获取元数据?...

你考虑过使用吗

IDENT_SEED

在动态查询中?

这将返回表标识列的种子值,如果不存在,则返回空值。

例子:

USE master

GO

CREATE DATABASE Test

GO

USE Test

GO

CREATE TABLE Test1 (ColA INT IDENTITY(100,1))

CREATE TABLE Test2 (ColA INT)

GO

USE master

GO

DECLARE @TargetDBName NVARCHAR(MAX), @sql1 NVARCHAR(MAX)

SET @TargetDBName = 'Test'

SET @sql1 = N'SELECT'

+ N' t.TABLE_NAME as TableName'

+ N',t.TABLE_SCHEMA as SchemaName'

+ N',(SELECT CASE WHEN IDENT_SEED('''

+ QUOTENAME(@TargetDBName) + '.''

+ t.TABLE_SCHEMA + ''.''

+ t.TABLE_NAME) IS NOT NULL THEN 1 ELSE 0 END) as HasIdentity '

+ N'FROM ' + QUOTENAME(@TargetDBName)

+ N'.INFORMATION_SCHEMA.TABLES t'

EXEC(@sql1)

GO

DROP DATABASE Test

GO

结果:

TableName SchemaName HasIdentity

---------- ----------- -----------

Test1 dbo 1

Test2 dbo 0

您可能需要考虑的一个警告:

出错或调用方返回空值

没有权限查看

对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值