DECLARE @Table sysname = 'YourTable'SELECT c.name [PKColumn]FROM sys.tables bINNER JOIN sys.columns c ON b.object_id = c.object_idWHERE b.type = 'u' AND c.is_identity = 1 AND b.object_id = OBJECT_ID(@Table)
declare @TableName sysname;-- set @TableName = 'YourTableName' << Put your table name here and uncomment the lineselect idx.namefrom sys.indexes idxwhere idx.object_id = object_id(@TableName) and idx.is_primary_key = 1;
ALTER FUNCTION dbo.fx_GetAliasID ( @Table sysname, @Value varchar(6))RETURNS varchar(500) ASBEGINDECLARE @Name varchar(25), @Object varchar(25), @Column varchar(25);WITH X (iName, iObject, iColumn) AS ( SELECT b.name, b.object_id, c.column_id FROM sys.tables b INNER JOIN sys.indexes s ON b.object_id = s.object_id INNER JOIN sys.index_columns c ON s.object_id = c.object_id WHERE b.type = 'u' AND s.is_primary_key = 1 AND c.object_id = OBJECT_ID(@Table)) SELECT @Name = iName, @Object = iObject, @Column = iColumn FROM XSET @Column = (SELECT c.name FROM sys.tables b INNER JOIN sys.columns c ON b.object_id = c.object_id WHERE b.type = 'u' AND b.object_id = OBJECT_ID(@Name) AND c.column_id = @Column) RETURN ('SELECT ' + @Column + ' FROM ' + @Name + ' WHERE TM_GUID = ' + @Value) END
DECLARE @SQL varchar(500)SET @SQL = (SELECT dbo.fx_GetAliasID ('ALIAS_TYP', 4))EXEC (@SQL)