在表中找出與輸入值相等的欄位名稱

2021-04-06 22:07:41 字數 1199 閱讀 9022

set quoted_identifier on

goset ansi_nulls on

goalter    procedure findfieldbyonenvarchar @tablename nvarchar(20),@onerowsql nvarchar(4000),@inonenvarchar nvarchar(20)

as/*

在乙個表中找出與@inonenvarchar相同值的欄位名稱

呼叫示例:exec findfieldbyonenvarchar n'default_setting',n'select * from default_setting',2

*/declare @name nvarchar(100)

declare @strsql nvarchar(4000)

declare @fresult nvarchar(200)

declare rowsetcur cursor for  select name from syscolumns where id=object_id(@tablename,n'table')

open  rowsetcur

fetch next from rowsetcur into @name

while @@fetch_status=0

begin

set @strsql=n'select @fresult=cast(a.['+@name+'] as nvarchar(200)) from ('+ @onerowsql+') a '

--print @strsql

execute sp_executesql @strsql,n'@fresult nvarchar(200) out',@fresult out

--print @fresult+':'+@inonenvarchar

if @@error<>0 begin print @name+':error!'  break end

if @fresult=@inonenvarchar

print @name+';'

fetch next from rowsetcur into @name 

endclose rowsetcur

deallocate rowsetcur

goset quoted_identifier off

goset ansi_nulls on

go

mysql的表名 欄位名 字段值是否區分大小寫

1 mysql預設情況下是否區分大小寫,使用show variables like table names 檢視lower case table names的值,0代表區分,1代表不區分。2 mysql對於型別為varchar資料預設不區分大小寫,但如果該字段以 bin 編碼的話會使mysql對其區...

mysql的表名 欄位名 字段值是否區分大小寫

1 mysql預設情況下是否區分大小寫,使用show variables like table names 檢視lower case table names的值,0代表區分,1代表不區分。2 mysql對於型別為varchar資料預設不區分大小寫,但如果該字段以 bin 編碼的話會使mysql對其區...

MYSQL在眾多表中查詢表名和欄位名

在mysql 眾多表中查詢乙個表名或者欄位名的 sql 語句 select table name,column name from information schema.columns where column name like name 下面兩種方法也可以查到 select column nam...