නිශ්චිත නම සහිත තීරුව අඩංගු සියලුම වගු සොයා ගන්න - MS SQL සේවාදායකය


1230

තීරු අඩංගු වගු නම් විමසීමට හැකිද?

LIKE '%myName%'

?


14
සියලුම වස්තු වර්ග සෙවිය හැකි SQL සේවාදායකය සඳහා පුදුමාකාර ප්ලගිනයක් තිබේ. sql search red-gate.com/products/sql-development/sql-search
Vbp

2
bvbp: sql-search ඇත්තෙන්ම විශිෂ්ටයි, නමුත් බොහෝ මෙවලම් මෙන් එය SQL Server 2000 සමඟ ක්‍රියා නොකරයි (ඔව්, මම මේ මොහොතේ ඒ සමඟම හිර වී සිටිමි: - /)
පැට්‍රික් හොනොරෙස්

4
SSvbp එස්එස්එම්එස් සඳහා වන ඇපෙක්ස්ක්එල් සෙවීම ඊටත් වඩා ලබා දෙයි
ජුන්චෙන් ලියු

Answers:


1895

සෙවුම් වගු:

SELECT      c.name  AS 'ColumnName'
            ,t.name AS 'TableName'
FROM        sys.columns c
JOIN        sys.tables  t   ON c.object_id = t.object_id
WHERE       c.name LIKE '%MyName%'
ORDER BY    TableName
            ,ColumnName;

සෙවුම් වගු සහ දර්ශන:

SELECT      COLUMN_NAME AS 'ColumnName'
            ,TABLE_NAME AS  'TableName'
FROM        INFORMATION_SCHEMA.COLUMNS
WHERE       COLUMN_NAME LIKE '%MyName%'
ORDER BY    TableName
            ,ColumnName;

18
S INFORMATION_SCHEMA SQL සේවාදායකයේ ඇතුළත් කර ඇති දර්ශන INFORMATION_SCHEMA සඳහා වන ISO සම්මත අර්ථ දැක්වීමට අනුකූල වේ. , sys.columns, sys.tablesමයික්රොසොෆ්ට් අනවශ්යය සේවාදායකය විශේෂිත වේ.
ටොමසිටෝ

5
TABLE_SCHEMAඔබගේ තෝරාගත් ලැයිස්තුවට ඇතුළත් කිරීම ප්‍රයෝජනවත් වේ. තවමත් +1 එය හොඳ පිළිතුරක් නිසා.
බර්න්හාර්ඩ් හොෆ්මන්

2
Answer user3185569 විසින් අදහස් දක්වා ඇති පරිදි ඔබේ පිළිතුරට දෙදෙනා අතර ඇති වෙනස්කම් පිළිබඳ පැහැදිලි කිරීම ඔබට එකතු කළ හැකිද?
රයන් ගේට්ස්

2
දෙවැන්න SQL Server 2000 සමඟ ද ක්‍රියා කරයි, ඔබට එය භාවිතා කිරීමට
සිදුවුවහොත්

2
මේස යෝජනා ක්‍රමයක් ද ලබා ගන්න: c.name AS ColName, t.name AS TableName, SCHEMA_NAME (t.schema_id) AS SchemaName ....
Scorunka František

338

අපට පහත සින්ටැක්ස් භාවිතා කළ හැකිය: -

select * from INFORMATION_SCHEMA.COLUMNS 
where COLUMN_NAME like '%clientid%' 
order by TABLE_NAME

11
මෙය මා වෙනුවෙන් වැඩ කළ අතර ඉහළම පිළිතුර නොලැබුණි (මම මාරියා ඩීබී භාවිතා කරමි).
ඕබ්රි රොබට්සන්

4
එය ලබා දී සියලු දෙනා විවිධ දත්ත සමුදායන් මත වැඩ පැවසීම විස්මයට කරුණක් නොවේ INFORMATION_SCHEMAකොටසක් වන ANSI සම්මත
ඩාවොස්

187

SQL සේවාදායකය:

SELECT Table_Name, Column_Name 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = 'YOUR_DATABASE'
AND COLUMN_NAME LIKE '%YOUR_COLUMN%'

ඔරකල්:

SELECT owner, table_name, column_name 
FROM all_tab_columns 
WHERE column_name LIKE '%YOUR_COLUMN_NAME%'
AND OWNER IN ('YOUR_SCHEMA_NAME');
  • ඒ තරම් සරළයි!! (SQL, PL / SQL)
    දී ඇති දත්ත ගබඩාවක (ක්‍රමානුරූප) තීරු නාමයක සියලු අවස්ථා සොයා ගැනීමට මම එය සෑම විටම භාවිතා කරමි.

5
මම බොහෝ විට මෙම SQL පිටපත් කර අලවන්නෙමි, ස්තූතියි @Todd_ECU
jonaglon

3
මෙය සැබවින්ම පිළිගත් පිළිතුර විය යුතුය. පිළිගත් පිළිතුරට වඩා පහසු වන පරිදි ඔබ
බැඳීම් සිදු කළ යුතු නැත

109
select  
        s.[name]            'Schema',
        t.[name]            'Table',
        c.[name]            'Column',
        d.[name]            'Data Type',
        c.[max_length]      'Length',
        d.[max_length]      'Max Length',
        d.[precision]       'Precision',
        c.[is_identity]     'Is Id',
        c.[is_nullable]     'Is Nullable',
        c.[is_computed]     'Is Computed',
        d.[is_user_defined] 'Is UserDefined',
        t.[modify_date]     'Date Modified',
        t.[create_date]     'Date created'
from        sys.schemas s
inner join  sys.tables  t
on s.schema_id = t.schema_id
inner join  sys.columns c
on t.object_id = c.object_id
inner join  sys.types   d
on c.user_type_id = d.user_type_id
where c.name like '%ColumnName%'

ඔබේ වගන්තියේ පෙරීම සඳහා අමතර කොන්දේසි භාවිතා කිරීමට ඔබ තෝරාගෙන ඇති හෝ නොකළ හැකි යෝජනා ක්‍රම, වගු සහ තීරු පිළිබඳ අමතර තොරතුරු මෙහි දී ඔබට ලබා දෙනු ඇත. උදාහරණයක් ලෙස, ඔබට අවශ්‍ය වන්නේ අගයන් එකතු කළ යුතු ක්ෂේත්‍ර පමණි

and c.is_nullable = 0

ඔබට වෙනත් කොන්දේසි එකතු කළ හැකිය, තෝරාගත් වගන්තියේ තීරු ද මෙම සිරස් ආකාරයෙන් එකතු කළෙමි, එවිට ඔබේ අවශ්‍යතා මත පදනම්ව නැවත සකස් කිරීම, ඉවත් කිරීම, නැවත නම් කිරීම හෝ වෙනත් අය එකතු කිරීම පහසු විය. විකල්පයක් ලෙස ඔබට T.Name භාවිතා කර හුදෙක් වගු සෙවිය හැකිය. එය ඉතා අභිරුචිකරණය කළ හැකිය.

විනෝද වන්න.


4
[max_length] ටිකක් වැඩකට නැති බව පෙනේ. c. [max_length] සමහර විට ඔබ අදහස් කළ දෙය විය හැකිය. නමුත් මාව එතනට ගෙන ඒමට තවමත් ඡන්දය දෙන්න.
user1566694

2
ඔබේ විමසුම අවසානයේ ඔබට මෙය තැබිය හැකිය 🤫 "ඇණවුම් කරන්න t.name"
Fuat

1
පරිශීලක පරෙස්සම් වන්න. ඉහත විමසුමෙන් ඇඟවෙන්නේ සැමවිටම සත්‍ය නොවන 'sys' වස්තුවට ප්‍රවේශ වීමයි. උදාහරණයක් ලෙස මගේ නඩුවේදී එම විමසුම කිසිවක් ලබා දුන්නේ නැත. ඒ වෙනුවට, 'INFORMATION_SCHEMA' භාවිතා කිරීම චාම් එකක් මෙන් ක්‍රියා කළේය.
OrizG

1
සාමාන්‍යයෙන් ධජ සමඟ 1 සත්‍ය වන අතර 0 අසත්‍ය වේ .. is_nullable ධජයද මේ ආකාරයට ක්‍රියා කරයි. "ශුන්‍ය විය හැකි" තීරු 1 කින් සලකුණු කර ඇති අතර "ශුන්‍ය වීමට නොහැකි" තීරු 0 කින් සලකුණු කර ඇත .. එනම් is_nullable අසත්‍යය 0 අගයකින් සලකුණු කර ඇත. මගේ මනස එතීමට කාරුණිකයි ..
ඇලන් එෆ්

1
සාධාරණ දර්ශන තීරු ගැන උනන්දුවක් දක්වන්නේ නම් sys.views සඳහා sys.tables මාරු කළ හැකිය ..
ඇලන් එෆ්

89

මෙය ක්‍රියාත්මක විය යුතුය:

SELECT name 
FROM sysobjects 
WHERE id IN ( SELECT id 
              FROM syscolumns 
              WHERE name like '%column_name%' )

7
මම ඒ sys.tablesවෙනුවට භාවිතා කරමි sysobjects(එය SQL Server 2005 වන විට ඉවත් කර ඇත)
marc_s

5
වලංගු නොවන තීරු නම 'id'
JSON

62

ඔබ තෙවන පාර්ශවීය මෙවලම් වලට වැඩි නම් එහි විකල්ප රාශියක් ඇත:

ඔබේ දත්ත ගබඩාවේ සංකේතාත්මක වස්තු (දර්ශන, ක්‍රියා පටිපාටි, කාර්යයන්) අඩංගු නම් මේවා ඉතා ප්‍රයෝජනවත් වේ. මන්ද ඔබට පද්ධති වගු භාවිතයෙන් පහසුවෙන් සෙවිය නොහැකි බැවිනි.


46

ඔබ සමඟ සම්බන්ධ වීමට යෝජනා කරන බොහෝ දෙනෙකුට sys.table with sys.columns පහත කේතය භාවිතා කළ හැක්කේ මන්දැයි මම නොදනිමි :

Select object_name(object_id) as TableName,* from SYS.columns where name LIKE '%MyName%'

හෝ

ඔබට යෝජනා ක්‍රමයේ නමද අවශ්‍ය නම්:

Select * from  INFORMATION_SCHEMA.COLUMNS
where COLUMN_NAME LIKE '%MyName%'

2
ඔවුන් sys.tables වෙතින් ක්‍රමලේඛ නාමය ලබා ගනී, සමහර විට එය ඔබට ප්‍රශ්නයක් නොවිය හැකි නමුත් එය බොහෝ දෙනෙකුට විය හැකිය.
කේ කිම්බල්

1
හායි, නමුත් ස්කීමා නාමය සඳහා sys.objects සමඟ සම්බන්ධ වීමට තවමත් අවශ්‍යතාවයක් නොමැත, ඔබට INFORMATION_SCHEMA.COLUMNS වෙතින් තෝරන්න * භාවිතා කළ හැකිය, එහිදී COLUMN_NAME '% MyName%'
පරිශීලක 3583912

1
ඔබ INFORMATION_SCHEMA.COLUMNS පෙන්වා දීම සතුටක්, කෙසේ වෙතත් ඔබ EXEC sp_helptext INFORMATION_SCHEMA.COLUMNS ධාවනය කරන්නේ නම්, එය ඇත්ත වශයෙන්ම එකම දේ කරන බව ඔබට දැක ගත හැකිය, සහ ඔබට අවශ්‍ය නොවන වෙනත් නිෂ් less ල දේවල්.
කේ කිම්බල්

42

ඔබට වගුවේ නම අවශ්‍ය නම් ඔබට ධාවනය කළ හැකිය:

select object_name(object_id) from sys.columns
where name like '%received_at%'

ඔබට යෝජනා ක්‍රමයේ නමද අවශ්‍ය නම් (ඔබට බොහෝ අවස්ථාවන්හිදී, ඔබට විවිධ ක්‍රමෝපායන් රාශියක් ඇති බැවින්, දත්ත සමුදායේ ඇති සෑම වගුවක්ම මතක තබා ගත නොහැකි නම් සහ එය අයිති කොතැනද යන්න ප්‍රයෝජනවත් වේ) ධාවනය කරන්න:

select OBJECT_SCHEMA_NAME(object_id),object_name(object_id) from sys.columns
where name like '%received_at%'

අවසාන වශයෙන් ඔබට එය වඩාත් හොඳ ආකෘතියකින් අවශ්‍ය නම් (මෙහි කේතය (මගේ මතය අනුව) පහසුවෙන් ලිවීමට අපහසු වන නමුත්):

select concat(OBJECT_SCHEMA_NAME(object_id),'.',object_name(object_id)) from sys.columns
where name like '%received_at%'

මා සතුව ඇති දේ මත පදනම්ව ඔබට ශ්‍රිතයක් නිර්මාණය කළ හැකි බව සලකන්න:

CREATE PROCEDURE usp_tablecheck
--Scan through all tables to identify all tables with columns that have the provided string
--Stephen B
@name nvarchar(200)
AS
SELECT CONCAT(OBJECT_SCHEMA_NAME(object_id),'.',object_name(object_id)) AS [Table Name], name AS [Column] FROM sys.columns
WHERE name LIKE CONCAT('%',@name,'%')
ORDER BY [Table Name] ASC, [Column] ASC
GO

කොන්ක්‍රීට් ලක්ෂණය 2012 දී එකතු කරන ලද බව සඳහන් කිරීම වටී. 2008r2 සඳහා සහ ඊට පෙර + නූල් සංයුක්ත කිරීම සඳහා + භාවිතා කරන්න.

මම මෙය පළ කළ දා සිට මම ප්‍රක්ශේපණය නැවත සකස් කර ඇත්තෙමි. එය දැන් තව ටිකක් දියුණු නමුත් බොහෝ අවුල් සහගත පෙනුමක් ඇත (නමුත් එය ප්‍රොක් එකක ඇත, එබැවින් ඔබ එය කිසි විටෙකත් නොදකිනු ඇත) සහ එය වඩා හොඳින් සංයුති කර ඇත.

මෙම අනුවාදය ඔබට එය පරිපාලන දත්ත ගබඩාවක තබා පසුව ඕනෑම දත්ත සමුදායක් හරහා සෙවීමට ඉඩ දෙයි. වෙනස් කිරීම පිළිබඳව වූ decleration @dbසිට 'master'ඔබ පෙරනිමි දත්ත වීමට අවශ්ය කැපවීෙමන් (සටහන: ඔබ භාවිතා කිරීමට වැල අකාර වෙනස් නොකරන්නේ නම් CONCAT () යන ශ්රිතය භාවිතා කරන එකම 2012+ සමඟ කටයුතු කරනු ඇත +) මත.

CREATE PROCEDURE [dbo].[usp_tablecheck]
    --Scan through all tables to identify all tables in the specified database with columns that have the provided string
    --Stephen B
    @name nvarchar(200)
    ,@db nvarchar(200) = 'master'
AS
    DECLARE @sql nvarchar(4000) = CONCAT('
        SELECT concat(OBJECT_SCHEMA_NAME(col.object_id,DB_ID(''',@db,''')),''.'',object_name(col.object_id,DB_ID(''',@db,'''))) AS [Table Name]
            ,col.name AS [Column] 
        FROM ',@db,'.sys.columns col
        LEFT JOIN ',@db,'.sys.objects ob 
            ON ob.object_id = col.object_id
        WHERE 
            col.name LIKE CONCAT(''%'',''',@name,''',''%'') 
            AND ob.type =''U''
        ORDER BY [Table Name] ASC
            ,[Column] ASC')
    EXECUTE (@sql)
GO

28
USE AdventureWorks

GO

SELECT t.name AS table_name, SCHEMA_NAME(schema_id) AS schema_name,
 c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%EmployeeID%'
ORDER BY schema_name, table_name; 

එය පිනල් සර් බ්ලොග් අඩවියෙනි



24

තීරු_ නාම පෙරහන මඟින් ඔබට එය INFORMATION_SCHEMA.COLUMNS වෙතින් සොයාගත හැකිය

Select DISTINCT TABLE_NAME as TableName,COLUMN_NAME as ColumnName
     From INFORMATION_SCHEMA.COLUMNS Where column_name like '%myname%'


19

සම්පූර්ණ තොරතුරු ලබා ගැනීම සඳහා: තීරුවේ නම, වගුවේ නම මෙන්ම වගුවේ සැලැස්ම ..

SELECT COLUMN_NAME, TABLE_NAME, TABLE_SCHEMA
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME LIKE '%col_Name%'

17

පහත දැක්වෙන විමසුම මඟින් '% myName' වැනි ක්ෂේත්‍ර නාමයක් ඇති දත්ත සමුදායේ නිශ්චිත වගු නාම ලබා දෙනු ඇත.

SELECT distinct(TABLE_NAME)
  FROM INFORMATION_SCHEMA.COLUMNS    
 WHERE COLUMN_NAME LIKE '%myName%'

15

මෙන්න ඔබේ ප්‍රශ්නයට පිළිතුරයි

SELECT c.name AS ColumnName, t.name AS TableName
FROM sys.columns c
    JOIN sys.tables t ON c.object_id = t.object_id
WHERE c.name LIKE '%myName%';

13

මම එය උත්සාහ කර ඇති අතර මෙය හොඳින් ක්‍රියාත්මක වේ

USE YourDatabseName
GO
SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%YourColumnName%'
ORDER BY schema_name, table_name;

YourDatbaseName එක ඔබේ දත්ත ගබඩාවටත්, YourcolumnName එකත් ඔබේ තීරුවේ නමට පමණක් වෙනස් කරන්න.

මෙය උදව් වී ඇතැයි සිතමි


10

මගේ ඇස්වලට ලේ ගැලීමක් නොවන මේස සහ දර්ශන සඳහා මට යමක් අවශ්‍ය විය .

විමසුම

SELECT
    t.TABLE_TYPE AS [Type],
    c.TABLE_NAME AS [Object],
    c.COLUMN_NAME AS [Column]
FROM
    INFORMATION_SCHEMA.COLUMNS AS c
    LEFT JOIN INFORMATION_SCHEMA.TABLES AS t ON
        t.TABLE_CATALOG = c.TABLE_CATALOG AND 
        t.TABLE_SCHEMA = c.TABLE_SCHEMA AND
        t.TABLE_NAME = c.TABLE_NAME
WHERE
    c.COLUMN_NAME LIKE '%myName%'
ORDER BY
    [Type],
    [Object],
    [Column]

ප්‍රති ult ලය

Type        Object   Column
----------------------------
BASE TABLE  Table1   myName1
BASE TABLE  Table2   myName2
VIEW        View1    myName1
VIEW        View2    myName2

8
DECLARE @columnName as varchar(100)
SET @columnName = 'ColumnName'

SELECT t.name AS Table, c.name AS Column,
ty.name AS Type, c.max_length AS Length
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
INNER JOIN sys.types ty ON c.system_type_id = ty.system_type_id
WHERE c.name LIKE @columnName
ORDER BY t.name, c.name

7

මම මෙය එකම අරමුණක් සඳහා භාවිතා කළ අතර එය ක්‍රියාත්මක විය:

  select * from INFORMATION_SCHEMA.COLUMNS
  where TABLE_CATALOG= 'theDatabase'
  and COLUMN_NAME like 'theCol%'

7
SELECT t.name AS table_name, 
    SCHEMA_NAME(schema_id) AS schema_name,
    c.name AS column_name
FROM sys.tables AS t INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%Label%'
ORDER BY schema_name, table_name;

7

ඔරකල් මෙන් ඔබට මේ සමඟ වගු සහ තීරු සොයාගත හැකිය:

select table_name, column_name
from user_tab_columns 
where column_name 
like '%myname%';

6

මෙය අනුපිටපත් පිළිතුරක් නොවන බව මම විශ්වාස කරමි, නමුත් මා කිරීමට කැමති වන්නේ වර්ගීකරණ ප්‍රකාශයක් තුළ වර්ග ප්‍රකාශයක් ජනනය කිරීමයි, එමඟින් මා සොයන අගයන් සෙවීමට මට ඉඩ සලසයි (එම ක්ෂේත්‍ර නාම සහිත වගු පමණක් නොවේ (එය සාමාන්‍යයෙන් මා සොයන තීරු නාමයේ හැඳුනුම්පත හා සම්බන්ධ ඕනෑම තොරතුරක් මකා දැමීමට මට අවශ්‍ය වේ):

  SELECT  'Select * from ' + t.name + ' where ' + c.name + ' = 148' AS SQLToRun
  FROM sys.columns c, c.name as ColName, t.name as TableName
  JOIN sys.tables t 
     ON c.object_id = t.object_id
  WHERE c.name LIKE '%ProjectID%'

එවිට මට මගේ පළමු තීරුව වන "SQLToRun" පිටපත් කර ඇලවිය හැකිය ... ඉන්පසු මම "තෝරන්න * වෙතින්" 'මකන්න වෙතින්' වෙනුවට ආදේශ කරමි. එමඟින් එම හැඳුනුම්පතේ ඕනෑම සඳහනක් මකා දැමීමට මට ඉඩ සලසයි! මෙම ප්‍රති results ල ගොනු කිරීමට ලියන්න එවිට ඔබ ඒවා තිබේ නම්.

සටහන **** ඔබගේ මකාදැමීමේ ප්‍රකාශය ක්‍රියාත්මක කිරීමට පෙර ඕනෑම බේකප් වගුවක් ඉවත් කිරීමට වග බලා ගන්න ...

  SELECT  'Delete from ' + t.name + ' where ' + c.name + ' = 148' AS SQLToRun
  FROM sys.columns c, c.name as ColName, t.name as TableName
  JOIN sys.tables t 
     ON c.object_id = t.object_id
  WHERE c.name LIKE '%ProjectID%'

6

ඔබට මෙම විමසුම උත්සාහ කළ හැකිය:

USE AdventureWorks
GO
SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%myName%'

2
Blog.sqlauthority.com/2008/08/06/… ට බොහෝ සෙයින් සමාන බව පෙනේ .
user3428422

5

ඉහත පිළිතුරු වැඩිදියුණු කිරීම සඳහා මම දර්ශන ඇතුළත් කර ඇති අතර ප්‍රති Sche ල වඩාත් පැහැදිලිව පෙනෙන පරිදි යෝජනා ක්‍රමය සහ වගුව / දර්ශනය එකට එකතු කර ඇත.

DECLARE @COLUMNNAME AS VARCHAR(100);

SET @COLUMNNAME = '%Absence%';

SELECT CASE
           WHEN [T].[NAME] IS NULL
           THEN 'View'
           WHEN [T].[NAME] = ''
           THEN 'View'
           ELSE 'Table'
       END AS [TYPE], '[' + [S].[NAME] + '].' + '[' + CASE
                                                          WHEN [T].[NAME] IS NULL
                                                          THEN [V].[NAME]
                                                          WHEN [T].[NAME] = ''
                                                          THEN [V].[NAME]
                                                          ELSE [T].[NAME]
                                                      END + ']' AS [TABLE], [C].[NAME] AS [COLUMN]
FROM [SYS].[SCHEMAS] AS [S] LEFT JOIN [SYS].[TABLES] AS [T] ON [S].SCHEMA_ID = [T].SCHEMA_ID
                            LEFT JOIN [SYS].[VIEWS] AS [V] ON [S].SCHEMA_ID = [V].SCHEMA_ID
                            INNER JOIN [SYS].[COLUMNS] AS [C] ON [T].OBJECT_ID = [C].OBJECT_ID
                                                                 OR
                                                                 [V].OBJECT_ID = [C].OBJECT_ID
                            INNER JOIN [SYS].[TYPES] AS [TY] ON [C].[SYSTEM_TYPE_ID] = [TY].[SYSTEM_TYPE_ID]
WHERE [C].[NAME] LIKE @COLUMNNAME
GROUP BY '[' + [S].[NAME] + '].' + '[' + CASE
                                             WHEN [T].[NAME] IS NULL
                                             THEN [V].[NAME]
                                             WHEN [T].[NAME] = ''
                                             THEN [V].[NAME]
                                             ELSE [T].[NAME]
                                         END + ']', [T].[NAME], [C].[NAME], [S].[NAME]
ORDER BY '[' + [S].[NAME] + '].' + '[' + CASE
                                             WHEN [T].[NAME] IS NULL
                                             THEN [V].[NAME]
                                             WHEN [T].[NAME] = ''
                                             THEN [V].[NAME]
                                             ELSE [T].[NAME]
                                         END + ']', CASE
                                                        WHEN [T].[NAME] IS NULL
                                                        THEN 'View'
                                                        WHEN [T].[NAME] = ''
                                                        THEN 'View'
                                                        ELSE 'Table'
                                                    END, [T].[NAME], [C].[NAME];

4
Create table #yourcolumndetails(
DBaseName varchar(100), 
TableSchema varchar(50), 
TableName varchar(100),
ColumnName varchar(100), 
DataType varchar(100), 
CharMaxLength varchar(100))

EXEC sp_MSForEachDB @command1='USE [?];
    INSERT INTO #yourcolumndetails SELECT
    Table_Catalog
    ,Table_Schema
    ,Table_Name
    ,Column_Name
    ,Data_Type
    ,Character_Maximum_Length
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME like ''origin'''

select * from #yourcolumndetails
Drop table #yourcolumndetails

1
මෙය මා සොයමින් සිටියේ, එක් දත්ත ගබඩාවක් පමණක් නොව, ඕනෑම දත්ත සමුදායක් හරහා විසඳුමක්.
Fandango68

2

මෙන්න සයිබේස් දත්ත සමුදායක් සඳහා ක්‍රියාකාරී විසඳුමක්

select 
  t.table_name, 
  c.column_name 
from 
  systab as t key join systabcol as c 
where 
   c.column_name = 'MyColumnName'

3
වැඩ කරේ නැහැ. 'යතුර' යන පදය අසල වැරදි සින්ටැක්ස්.
පයිමන් සමඩියන්


2

තීරුවේ නම සඳහන් කර ඇති සියලුම වගු පෙන්වීමට SQL විමසුම:

SELECT SCHEMA_NAME(schema_id) + '.' + t.name AS 'Table Name'
  FROM sys.tables t
 INNER JOIN sys.columns c ON c.object_id = t.object_id
 WHERE c.name like '%ColumnName%'
 ORDER BY 'Table Name'

0

MS SQL සේවාදායක දත්ත ගබඩාවේ, ආදාන පෙළ අඩංගු වගු සහ අදාළ තීරු නම් ලබා ගැනීමට මෙම විමසුම භාවිතා කරන්න:

SELECT t.name AS tableName, c.name AS columnName 
FROM sys.tables as t 
INNER JOIN sys.columns AS c ON t.object_id=c.object_id 
WHERE c.name LIKE '%<your_search_string>%'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.