如何将sql执行的错误消息记录到本地网站网站文件中实现过程
其实大家都知道sql数据库语句的错误信息都可以在sys.messages表里面找到,如:,假如如果在执行数据库语句在try...catch中 咱们可以通过以下具体相关方法获取错误信息。sql数据库语句如下:,复制具体相关代码 具体相关代码如下:,BEGIN TRY SELECT 3 / 0 END TRY BEGIN CATCh DECLARE @errornumber INT DECLARE @errorseverity INT DECLA,现在咱们来定义一个存储过程,其目的就是往本地网站网站文件中写入信息。,sql脚本如下:,复制具体相关代码 具体相关代码如下:,CREATE Proc [dbo].[UCreateOrAppendTextFile](@Filename VarChar(100),@Text nVarchar(4000)) AS DECLARE
复制具体相关代码 具体相关代码如下:
-- SQL Server 2000
SELECT a.name AS 字段名, CASE WhEN EXISTS
(SELECT 1
FROM sysobjects
WhERE xtype = 'PK' AND parent_obj = a.id AND name IN
(SELECT name
FROM sysindexes
WhERE indid IN
(SELECT indid
FROM sysindexkeys
WhERE id = a.id AND colid = a.colid)))
ThEN '1' ELSE '0' END AS 主键, CASE WhEN COLUMNPROPERTY(a.id, a.name,
'IsIdentity') = 1 ThEN '1' ELSE '0' END AS 标识, b.name AS 类型,
a.length AS 占用字节数, COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 长度,
a.xscale AS 小数, a.isnullable AS 可空, ISNULL(e.text, '') AS 默认值, ISNULL(g.[value],
'') AS 字段说明
FROM syscolumns a LEFT OUTER JOIN
systypes b ON a.xusertype = b.xusertype INNER JOIN
sysobjects d ON a.id = d.id AND d.xtype = 'U' AND
d.name <> 'dtproperties' LEFT OUTER JOIN
syscomments e ON a.cdefault = e.id LEFT OUTER JOIN
sysproperties g ON a.id = g.id AND a.colid = g.smallid LEFT OUTER JOIN
sysproperties f ON d.id = f.id AND f.smallid = 0
WhERE (d.name = '表名称')
--2。SQL SERVER 2005
SELECT CASE WhEN EXISTS
(SELECT 1
FROM sysobjects
WhERE xtype = 'PK' AND parent_obj = a.id AND name IN
(SELECT name
FROM sysindexes
WhERE indid IN
(SELECT indid
FROM sysindexkeys
WhERE id = a.id AND colid = a.colid))) ThEN '1' ELSE '0' END AS 'key', CASE WhEN COLUMNPROPERTY(a.id, a.name,
'IsIdentity') = 1 ThEN '1' ELSE '0' END AS 'identity', a.name AS ColName, c.name AS TypeName, a.length AS 'byte', COLUMNPROPERTY(a.id, a.name,
'PRECISION') AS 'length', a.xscale, a.isnullable, ISNULL(e.text, '') AS 'default', ISNULL(p.value, '') AS 'comment'
FROM sys.syscolumns AS a INNER JOIN
sys.sysobjects AS b ON a.id = b.id INNER JOIN
sys.systypes AS c ON a.xtype = c.xtype LEFT OUTER JOIN
sys.syscomments AS e ON a.cdefault = e.id LEFT OUTER JOIN
sys.extended_properties AS p ON a.id = p.major_id AND a.colid = p.minor_id
WhERE (b.name = 'keyfactory') AND (c.status <> '1')
--b.name = 'Keyfactory','Keyfactory'为您想要查找的数据表。
--2、SQL SERVER 2005
SELECT CASE WhEN EXISTS
(SELECT 1
FROM sysobjects
WhERE xtype = 'PK' AND parent_obj = a.id AND name IN
(SELECT name
FROM sysindexes
WhERE indid IN
(SELECT indid
FROM sysindexkeys
WhERE id = a.id AND colid = a.colid))) ThEN '1' ELSE '0' END AS 'key', CASE WhEN COLUMNPROPERTY(a.id, a.name,
'IsIdentity') = 1 ThEN '1' ELSE '0' END AS 'identity', a.name AS ColName, c.name AS TypeName, a.length AS 'byte', COLUMNPROPERTY(a.id, a.name,
'PRECISION') AS 'length', a.xscale, a.isnullable, ISNULL(e.text, '') AS 'default', ISNULL(p.value, '') AS 'comment'
FROM sys.syscolumns AS a INNER JOIN
sys.sysobjects AS b ON a.id = b.id INNER JOIN
sys.systypes AS c ON a.xtype = c.xtype LEFT OUTER JOIN
sys.syscomments AS e ON a.cdefault = e.id LEFT OUTER JOIN
sys.extended_properties AS p ON a.id = p.major_id AND a.colid = p.minor_id
WhERE (b.name = 'keyfactory') AND (c.status <> '1')
--b.name = 'Keyfactory','Keyfactory'为您想要查找的数据表。