SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE LEFT(CONSTRAINT_NAME, 2) = N'PK'
AND TABLE_NAME = OBJECT_NAME(c.OBJECT_ID)
AND COLUMN_NAME = c.name
) THEN 1 ELSE 0 END AS Reserve_flag --INTO #lynntest --存放数据库表格的字段数据
FROM sys.columns AS c
WHERE OBJECT_ID in
(object_id('dbo.t_Account'),object_id('dbo.t_Bank'),object_id('dbo.t_Charge'),object_id('dbo.t_Commodity'),
object_id('t_EQSize'),object_id('t_Country'),object_id('t_Currency'),object_id('t_CurrencyRate'),object_id('t_Customer'))
ORDER BY OBJECT_NAME(OBJECT_ID), column_id
经理说我代码不优化,给我改成了这样,弄了个sys.columns as C
结果当我要把where object_id in 括号里面的object_id都删了的时候。提示出错
“在将 varchar 值 'dbo.t_Account' 转换成数据类型 int 时失败。”
我把括号里改成('dbo.t_Account','dbo.t_Bank',......)
咋搞得?怎么处理啊?
但是就是去掉了括号里的object_id()就出错了。我试试看你的哦。wxkayx接下去又出问题了。select单独执行没问题。当把select放入insert后面。提示出错了。
insert into #lynntest (Grid_code,Column_name,Column_id,Column_note,Reserve_flag)
select grid_code, 'Edit_command' as column_name, max(column_id) + 1 as column_id,
'N''<a href="javascript;;" onClick="do'+SUBSTRING(grid_code, 1,LEN(grid_code)-4 )+'Edit(this, '' + CONVERT(NVARCHAR(20), Row_id) + '');">Edit</a>''' as column_note,
'0'
from #lynntest
group by grid_code将截断字符串或二进制数据。
语句已终止。
WHERE OBJECT_NAME(c.OBJECT_ID) in
('dbo.t_Account','dbo.t_Bank','dbo.t_Charge','dbo.t_Commodity',比原来少掉一百多条数据了啊